7
私は無期限に実行できるさまざまなタスクを生成するクラスを持っています。このオブジェクトが破棄されると、これらのタスクが実行されなくなります。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();
}
}
}
偉大な回答 - ありがとう。 1つの質問:なぜあなたはその仕事を処分しますか? – davenewza
タスクが終了したことが保証されているので、そうするのが安全だからです。しかし、[あなたは本当にする必要はありません](http://blogs.msdn.com/b/pfxteam/archive/2012/03/25/10287435.aspx)。 – Douglas
よかったです。読んでいただきありがとうございます。 – davenewza