Finalizery i utylizacja

Mam klasę o nazwieBackgroundWorker który ma ciągły wątek. Aby wyłączyć ten wątek, zmienna instancji o nazwiestop musi byćtrue.

Dodałem, że aby upewnić się, że wątek zostanie zwolniony po zakończeniu korzystania z klasyIDisposable i finalizator, który wywołujeDispose(). Przy założeniu, żestop = true rzeczywiście powoduje, że ten wątek kończy działanie, czy ten sippet jest prawidłowy? Dobrze jest wywołaćDispose z finalizatora, prawda?

Finalizatory powinny zawsze dzwonićDispose jeśliobject dziedziczyIDisposable, dobrze?

/// <summary>
/// Force the background thread to exit.
/// </summary>
public void Dispose()
{
    lock (this.locker)
    {
        this.stop = true;
    }
}

~BackgroundWorker()
{
    this.Dispose();
}

questionAnswers(6)

yourAnswerToTheQuestion