立即终止Sleep的线程
在实际工作中,我们需要每隔几分钟从API取数。
while(isRunning)
{
work();
Thread.Sleep(5*60*1000);
}
如果设置isRunning=false,也需要等待几分钟才能终止。
如果调用Thread.Abort()会报异常。
解决方法,将一次Sleep 5分钟,改为分5*60次Sleep一秒钟。然后将isRunning=false即可立即终止线程。
while(isRunning)
{
work();
for(int i=0;i<5*60 && isRunning;i++)
{
Thread.Sleep(1000);
}
}