在軟體開發中,有時可能需要提前終止執行緒的執行。但是,不鼓勵直接使用 Thread.Abort(),因為它可能會導致意外行為。
相反,建議採用協作方法來終止執行緒。這涉及創建一個線程來監視布林標誌,例如 keepGoing,指示它是否應該繼續運行。
public class WorkerThread { private bool _keepGoing = true; public void Run() { while (_keepGoing) { // Perform the intended work of the thread. } } public void Stop() { _keepGoing = false; } }
這個修改後的實作允許在呼叫 Stop 方法時安全有序地關閉線程,防止 Thread.Abort() 產生不良影響。
此外,可能遇到阻塞操作(例如 Sleep 或 Wait)的執行緒應該準備好處理ThreadInterruptedException 並優雅地退出。
try { while (_keepGoing) { // Perform the intended work of the thread. } } catch (ThreadInterruptedException exception) { // Handle the interruption and perform necessary cleanup. }
透過實現這種協作方法來終止線程,開發人員可以保持對其線程生命週期的控制,確保可靠且可預測的應用程式執行。
以上是如何安全停止 .NET 執行緒?的詳細內容。更多資訊請關注PHP中文網其他相關文章!