2

我可以做这样的事情来等待,例如 5 秒,然后继续使用其他方法并且不冻结我的 UI 吗?

System.Threading.Tasks.Task.Factory.StartNew(() =>
{
    System.Threading.Thread.Sleep(5000);
    // Code to do some method
});
4

2 回答 2

10

你应该使用:

await Task.Delay(5000);
于 2013-10-16T09:31:48.140 回答
1

Thread.Sleep()不推荐。将线程/任务阻塞 5 秒是没有好处的。

正如@Jeroen van Langen 的回答中提到的,await Task.Delay()是最好的方法。但是,如果由于某种原因您无法使用async/await机制,则第二好的选择是设置一次性 5 秒计时器。Windows.Forms.Timer对于 WinForms 或DispatcherTimerWPF。

Task.Delay()依次由计时器实现。)

于 2013-10-16T10:26:00.557 回答