スレッドタスクのキャンセルのエレガントな扱い
マルチスレッドアプリケーションでは、スレッド内のタスクの効果的な管理と終了が非常に重要です。この例では、問題に遭遇しました。つまり、スレッド上の.abort()が関連するタスクを終了できませんでした。この問題を解決するには、推奨方法を調べてみましょう。キャンセルマークを使用してください。
スレッドプールとタスクの動作を理解する
.abort()に依存するのではなく、キャンセルラベルをより効果的で制御可能なタスクとして使用してメソッドを終了する方が良いでしょう。作業原則は次のとおりです
CancellationTokenSourceを作成し、キャンセルトークンプロパティを開示します。 タスクを初期化するときは、キャンセルトークンをコンストラクターまたはstartNewメソッドに渡します。
タスクの実行ロジックでは、CancellationToken.iscancellationRequstedロゴが設定されているかどうかを定期的に確認してください。リクエストがキャンセルされた場合、実行と指示はエレガントに(例えば、ログレコードを介して)。
以上がThread.Abort() を使用する代わりに、スレッド プール内のタスクを正常にキャンセルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。