私はスレッドをいくつかのロックでブロックしています。今はいくつかの状態では、C#のスレッドを殺したいです。 しかし、問題はthread.abortではスレッドを強制終了しないということです。状態をブロックしているスレッドを殺す
答えて
実際にスレッドの死を保証したい場合は、新しいプロセスを開始することをお勧めします。
thread.abortの可能性のある落とし穴の多くについて議論する素晴らしいスレッドがありますhere。
私はこの文章を直接適用すると思います:*「私が常時推奨しているアプローチは、単純で死んでいます。ワーカースレッドとUIスレッドの両方に表示される揮発性ブールフィールドを持ちます。 * –
ほとんどの場合、OPがスレッド上で本質的にデッドロックされていることを除いて私は同意しますが、この場合、フラグの状態をチェックする方法はありません。 –
ロックとループの最大待機時間を設定できます。次のようなものがあります: 'while(!getLock(waitMs)){if(キャンセル)return false; } ... ' –
スレッドがデッドロックに遭遇したときに決定論的な方法でスレッドを強制終了すると仮定します。右 ? はいthread abortは終了を保証するものではありませんが、Thread.Abortを使用することはほとんど常に悪い考えです。 スレッドを瞬時に終了させる方法があれば、より大きな問題につながる可能性があります。このスレッドがいくつかのリソースをロックした場合、コミットされていないトランザクションなどの途中で、これらのリソースを保持するスレッドが突然終了した場合、他のスレッドはこれらのリソースを処理できません。 私が与えることができる最も良い提案は、デッドロックの問題をマスキングするのではなく修正することです。
おかげでHenk Holterman – rakesh
- 1. ブロックとスリープ状態の消費者スレッド/
- 2. iPhone - 待ち状態のスレッドのスレッドを解除していないスレッド状態信号
- 3. pthreadスレッド状態
- 4. コルーチンがブロックされている場合にスレッドがブロック状態になるのを避ける方法
- 5. スレッドを殺す
- 6. Couchbaseスレッドはブロック状態にあります
- 7. SlimDX - 状態ブロックを設定する
- 8. 競合状態をスレッド化し、スレッドをスリープ状態にするためにタイマを使用する
- 9. スレッドの状態を実行していますか?
- 10. ASP.NETスレッドを殺す
- 11. phpmyadminプロセスを殺したいがそのビジー状態を解消したい
- 12. スレッドが起動しない他のスレッドがビジー状態です
- 13. VB.net TCP非ブロック状態
- 14. Javaはスレッド状態でリッスンします
- 15. 状態を更新していない状態を更新しています
- 16. C#スレッド競合状態
- 17. Crashlogs: "ARMスレッド状態"とは
- 18. Javaスレッド:マルチスレッド - 競合状態
- 19. マウスイベントでコンポーネントの状態を殺す方法React JS
- 20. 新しいスレッドはまだUIスレッドをブロックしています
- 21. すべてのスレッドをスリープ状態にする方法 - iphone
- 22. ドラフトエディタ状態の親状態を更新していますか?
- 23. Javaのスレッドを殺すandroid
- 24. スレッドを殺すこと
- 25. Javaのスレッドを殺す
- 26. Cでスレッドの状態を取得++ /窓
- 27. 状態が返されている状態でNULLを返す
- 28. スレッドをブロックするスレッド
- 29. Java PipedInputStreamスレッドは、ロックを保持している他のスレッドがないBLOCKED状態ですか?
- 30. イベントハンドラから自殺スレッドを実行しています
OK、質問したい質問はありますか? –
デッドロックの原因となるバグを修正する方が良いのでしょうか? –
スレッドがなぜそれを待っているのか少し説明できますか?ところで、スレッドがMSDNのドキュメントで終わらないことについての非常に明確な説明があります:http://msdn.microsoft.com/en-us/library/ty8d3wta.aspx –