【发布时间】:2008-09-29 22:28:27
【问题描述】:
我有一个名为BackgroundWorker 的类,它有一个不断运行的线程。要关闭此线程,名为stop 的实例变量需要为true。
为了确保在使用完类时释放线程,我添加了IDisposable 和一个调用Dispose() 的终结器。假设 stop = true 确实导致该线程退出,那么这个 sippet 是否正确?从终结器调用Dispose 没问题,对吧?
如果object 继承IDisposable,终结者应该总是调用Dispose,对吧?
/// <summary>
/// Force the background thread to exit.
/// </summary>
public void Dispose()
{
lock (this.locker)
{
this.stop = true;
}
}
~BackgroundWorker()
{
this.Dispose();
}
【问题讨论】:
-
第一段有错字? “假”应该是“真”,对吧?
标签: c# dispose idisposable finalizer disposable