我正在启动一个使用某些文件运行例程任务的线程,不幸的是,在该线程回调中调用Thread.Sleep
会在指定的时间内挂起Windows,即。我的光标冻结了,CTRL + ALT + DEL也没有做任何事情。如何在不挂断UI的情况下专门“睡眠”后台线程?
我正在使用这个创建线程:
createThread = new Thread(new ThreadStart(this.createFileExec));
createThread.Start();
我的回调是这样的:
private void createFileExec() {
....
Thread.Sleep(100);
....
}
答案 0 :(得分:2)
如何在不挂断UI的情况下专门“睡眠”后台线程?
通过在新线程上调用Thread.Sleep
,这正是您正在做的事情。你确定你没有从主线程中调用createFileExec
吗?
答案 1 :(得分:0)
詹姆斯是对的,没有理由让用户界面挂起。
你可以尝试的快速黑客是使用循环而不是Thread.Sleep。
for (int i = 1; i <= 10000; i++)
{
Console.WriteLine("."); //To know that the thread is asleep.
}