Thread.Suspend()
方法已過時,如您所知。當按鈕點擊事件發生時,我想立即中止線程。我使用了Thread.Suspend(),它的工作原理非常完美,但是每個人都建議使用Thread.Suspend()方法不是一個很好的方法來暫停任務。我使用了一個標誌來暫停任務,但每次按下按鈕點擊事件時,我都必須等待退出任務。我使用Thread.IsAlive標誌等待線程退出,但此方法凍結窗體。Thread.Suspend()方法的替代方法
void ButtonClickEvent(object sender, ButtonClickEventArgs e)
{
TheadExitFlag = false;
if(MyThread != null)
{
while(MyThread.IsAlive);
//MyThread.Suspend();
}
}
void MyTask(void)
{
while(TheadExitFlag)
{
// some process
Thread.Sleep(5000);
}
}
我該如何暫停該線程嗎?
請更清楚你想做什麼 - 如果你想'暫停'線程或退出線程,我甚至不會100%確定。另一個例子:MyThread是對MyTask運行的線程的引用嗎?看起來像'ThreadExitFlag == true'意味着線程應該*不*退出;如果是這樣,我建議你改名。 – 2012-04-18 09:51:07
你爲什麼要暫停線程? – user844541 2012-04-18 09:51:32
我敢打賭,你試圖解決一個問題,使用錯誤的設施,爲什麼你需要暫停一個線程? – sll 2012-04-18 11:01:23