0

我正在启动一个使用一些文件运行例行任务的线程,不幸的是,Thread.Sleep在该线程回调中调用会在指定的时间内挂起 Windows,即。我的光标冻结并且 CTRL+ALT+DEL 也不执行任何操作。如何在不挂断 UI 的情况下专门“休眠”后台线程?

我正在使用这个创建线程:

 createThread = new Thread(new ThreadStart(this.createFileExec));
 createThread.Start();

我的回调是这样的:

    private void createFileExec() {
        ....
        Thread.Sleep(100);
        ....
    }
4

2 回答 2

2

如何在不挂断 UI 的情况下专门“休眠”后台线程?

这正是您通过调用Thread.Sleep新线程所做的事情。你确定你不是createFileExec从主线程调用吗?

于 2012-09-28T10:55:44.913 回答
0

詹姆斯是对的,没有理由让 UI 挂起。

您可以尝试的一个快速破解方法是使用循环而不是 Thread.Sleep 。

for (int i = 1; i <= 10000; i++)
{
      Console.WriteLine("."); //To know that the thread is asleep.
}
于 2012-09-28T10:59:17.060 回答