実行中のスレッドを終了すると、特に次の使用時に問題が発生する可能性があります。 Thread.Abort() メソッド。スレッドを突然中断するのではなく、より協調的なアプローチを採用することをお勧めします。
スレッドを次のことができるメカニズムで設計します。潔く自殺する。 keepGoing などのブール型フラグを導入します。これを false に設定すると、スレッドに停止の信号を送信できます。スレッド内で次のようなループを使用します:
while (keepGoing) { /* Perform work. */ }
スレッドがスリープまたは待機関数でブロックされやすい場合は、それを実行します。 Thread.Interrupt() を呼び出すことで割り込みに応答します。スレッドは ThreadInterruptedExceptions を適切に処理する必要があります。
try { while (keepGoing) { /* Perform work. */ } } catch (ThreadInterruptedException exception) { /* Clean up and exit gracefully. */ }
このアプローチにより、スレッドが確実に正常に終了し、潜在的な中断やデータ損失が最小限に抑えられます。 Thread.Abort() は破壊的な性質があるため、避けるべきであることを覚えておいてください。
以上が.NET スレッド終了における Thread.Abort() のより安全な代替手段は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。