资源的释放using与Dispose()
来源:互联网 发布:淘宝客服怎么绑定旺旺 编辑:程序博客网 时间:2024/05/29 04:09
对于一些资源,尤其是那些比较重要的系统级资源(如文件系统对象、网络系统对象、系统图形界面对象),使用后必需及时显式的释放,因为系统的垃圾回收器(GC)并不能保证在合适的时候被触发。
使用方法
1.用完后显式调用Dispose()方法
2.使用using结构,在对象超出作用域时using结构会自动调用Dispose()。
using (Graphics g = this.CreateGraphics())
...{
g.DrawLine(Pens.Black, new Point(0,0), new Point(3,5));
}
...{
g.DrawLine(Pens.Black, new Point(0,0), new Point(3,5));
}
等价于:
Graphics g
try...{
g.DrawLine(Pens.Black, new Point(0,0), new Point(3,5));
}
finally...{
if (g != null)
((IDisposable)g).Dispose();
}
是不是很多人不用c#中的using操作符?甚至不知道?
其实这个操作符在小处非常有用。
按照MSDN的解释
http://msdn2.microsoft.com/zh-CN/library/yh598w02(VS.80).aspx
using 关键字还用来创建 using 语句,此类语句定义将在何时释放对象
可以举个例子
class Demo:IDisposable
{
public void Dispose()
{
Console.WriteLine("Dispose");
}
public void DemoMethod()
{
Console.WriteLine("hi");
}
};
using (Demo a = new Demo())
{
a.DemoMethod();
}
可以看到Dispose()方法也会同时执行,这样带来的方便是不言而喻的
具体事例,大家可以参考PetShop 4.0的SQLHelper.cs
- 资源的释放using与Dispose()
- 关于dispose 方法的资源释放
- 使用Dispose模式释放资源
- .NET 语言的 using statement 与资源释放
- 可以使用 using 或者 try-catch-finally 调用 Dispose() 来释放非托管资源
- C# 资源释放及dispose、close方法
- C#里using的作用------释放资源
- 关于DI容器UnityContainer的Dispose方法释放资源的一点理解
- 资源的分配与释放
- C#里的资源Dispose
- delphi dispose释放内存的方法
- delphi dispose释放内存的方法
- C#中的非托管资源释放(Finalize&Dispose)
- C#中的非托管资源释放(Finalize&Dispose)
- c#中的非托管资源释放 (Finalize和Dispose)
- C#非托管资源释放(Finalize&Dispose)方法
- C#中的非托管资源释放(Finalize&Dispose)
- c#中的非托管资源释放 (Finalize和Dispose)
- Windwows中系统目录
- 字符串格式化转换
- 在 Internet Explorer 5.5 中创建可编辑的 Web 页
- 文献查阅的另类方法
- 开始→运行(cmd)命令大全
- 资源的释放using与Dispose()
- WindowsXP操作系统进程
- ASP.NET中实现MSN通知消息功能
- php安装GD库
- Window 秘訣列表
- LINQ To SQL 的效能 (列出部份的測試程式碼)
- Win2000进程
- Formula Draw 2008 制作体会
- 一个C#写的CLOCK程序