3 回答

TA貢獻1815條經驗 獲得超10個贊
您可以通過這種方式立即殺死它:
private Thread _myThread = new Thread(SomeThreadMethod);
private void SomeThreadMethod()
{
// do whatever you want
}
[SecurityPermissionAttribute(SecurityAction.Demand, ControlThread = true)]
private void KillTheThread()
{
_myThread.Abort();
}
我一直使用它并為我工作:)

TA貢獻1845條經驗 獲得超8個贊
首先,您應該具有一些同意的結束線程的方法。例如,線程可以檢查并遵守的running_ valiable。
您的主線程代碼應該包裝在一個異常塊中,該異常塊同時捕獲ThreadInterruptException和ThreadAbortException,這將在退出時徹底整理線程。
如果是ThreadInterruptException,則可以檢查running_變量以查看是否應該繼續。如果是ThreadAbortException,則應立即整理并退出線程過程。
試圖停止線程的代碼應執行以下操作:
running_ = false;
threadInstance_.Interrupt();
if(!threadInstance_.Join(2000)) { // or an agreed resonable time
threadInstance_.Abort();
}
- 3 回答
- 0 關注
- 1360 瀏覽
添加回答
舉報