Финализаторы и утилизация
у нас есть класс с именемBackgroundWorker
у которого есть нить, постоянно работающая. Чтобы отключить этот поток, переменная экземпляра с именемstop
нужно быть.true
Чтобы убедиться, что поток освобождается, когда класс используется, ямы добавилиIDisposable
и финализатор, который вызываетDispose()
, При условии, чтоstop = true
действительно ли это приводит к выходу из этой ветки? Это'нормально вызыватьDispose
из финализатора, верно?
Финализаторы всегда должны звонитьDispose
еслиobject
наследуетсяIDisposable
, право?
///
/// Force the background thread to exit.
///
public void Dispose()
{
lock (this.locker)
{
this.stop = true;
}
}
~BackgroundWorker()
{
this.Dispose();
}