終止正在執行的執行緒可能會帶來挑戰,尤其是在使用時Thread.Abort() 方法。建議採用更合作的方法,而不是突然中斷執行緒。
使用一種機制設計您的線程,使其能夠優雅地自殺。引入一個布林標誌,例如 keepGoing,您可以將其設為 false 以指示線程停止。在執行緒內,使用以下循環:
while (keepGoing) { /* Perform work. */ }
如果執行緒容易在Sleep 或Wait 函數中阻塞,請使其透過呼叫Thread. Interrupt() 來回應中斷。執行緒應適當地處理 ThreadInterruptedException:
try { while (keepGoing) { /* Perform work. */ } } catch (ThreadInterruptedException exception) { /* Clean up and exit gracefully. */ }
此方法可確保執行緒可以乾淨地終止,從而最大限度地減少潛在的中斷或資料遺失。請記住,由於 Thread.Abort() 具有破壞性,因此應避免使用。
以上是.NET 執行緒終止中 Thread.Abort() 的更安全替代方案是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!