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