У меня есть класс, который порождает различные задачи, которые могут выполняться неопределенно долго. Когда этот объект расположен, я хочу остановить выполнение этих задач.Отмена задач в методе Dispose
Является ли это правильный подход:
public class MyClass : IDisposable
{
// Stuff
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
queueCancellationTokenSource.Cancel();
feedCancellationTokenSource.Cancel();
}
}
}
Отличный ответ - спасибо. Один вопрос: почему вы распоряжаетесь этой задачей? – davenewza
Просто потому, что это безопасно, так как вам гарантировано, что эта задача закончится к тому времени. Но [вам действительно не нужно] (http://blogs.msdn.com/b/pfxteam/archive/2012/03/25/10287435.aspx). – Douglas
Хорошо отлично. Спасибо за чтение. – davenewza