我創建的線程和該線程可以被暫停。那麼,我該如何殺死或終止暫停的線程呢?暫停的線程可以中止嗎?
我試圖ABORT
線程,我得到一個運行時錯誤消息說,線程被掛起,它不能被中止。我看了終止方法或類似的東西,它似乎並不存在。
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
myThread.Abort; <<<===exception is raised.
那麼,如何殺死或終止暫停的線程?
我創建的線程和該線程可以被暫停。那麼,我該如何殺死或終止暫停的線程呢?暫停的線程可以中止嗎?
我試圖ABORT
線程,我得到一個運行時錯誤消息說,線程被掛起,它不能被中止。我看了終止方法或類似的東西,它似乎並不存在。
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
myThread.Abort; <<<===exception is raised.
那麼,如何殺死或終止暫停的線程?
我恢復暫停的線程之後,我才得以中止線程;
myThread := new Thread(@BigLoop);
myThread.Start;
myThread.Suspend;
if MyThread.ThreadState = ThreadState.Suspended then
myThread.Resume;
myThread.Abort;
請注意,使用中止是不可取的。更好的解決方案是使用waithandle(autoresetevent/manualresetevent)通知線程它應該停止運行。請記住,「中止」不適用於調用本地代碼的任何內容,如com或pinvoke。
CK。這是真的,但如果你正試圖在你的程序關閉中放棄一個線程會怎麼樣。那有關係嗎? – ThN
恢復它首先 – kludg
@Serg,它的工作....感謝 – ThN