CancelTokenSource リソースを正しく解放します
.NET では、CancellationTokenSource
はスレッドのキャンセルを管理するために使用され、リソース リークを避けるために明示的に解放される必要があります。この手順は MSDN の例では省略されることがよくありますが、リソースを正しく管理することが重要です。
CancelTokenSource を解放する必要があるのはなぜですか?
CancellationTokenSource
メモリ リークを防ぐためにクリーンアップする必要があるアンマネージ リソース (カーネル イベントなど) を使用します。 CancellationTokenSource
オブジェクトを自動的に解放しません。 正しいリリース方法
using
ステートメントを使用してトークン ソースを自動的に解放できます。 ContinueWith
を呼び出すタスクに Dispose()
メソッドをアタッチします。 Dispose()
を手動で呼び出します。 再利用性
CancellationTokenSource
は再利用できません。タスクまたは PLINQ クエリを開始した後、新しいトークン ソースを作成します。 IsCancellationRequested
と Token
のリセットはサポートされていません。
推奨戦略
複数の CancellationTokenSource
インスタンスを効率的に管理するには、次の点を考慮してください:
using
ステートメントを使用します (並列タスクを待機する場合など)。 ContinueWith
または明示的な解放を使用するなど) というパターンを採用します。 以上がCancelTokenSource をいつ破棄する必要があるか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。