我可以做这样的事情来等待,例如 5 秒,然后继续使用其他方法并且不冻结我的 UI 吗?
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(5000);
// Code to do some method
});
我可以做这样的事情来等待,例如 5 秒,然后继续使用其他方法并且不冻结我的 UI 吗?
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(5000);
// Code to do some method
});
你应该使用:
await Task.Delay(5000);
Thread.Sleep()
不推荐。将线程/任务阻塞 5 秒是没有好处的。
正如@Jeroen van Langen 的回答中提到的,await Task.Delay()
是最好的方法。但是,如果由于某种原因您无法使用async/await
机制,则第二好的选择是设置一次性 5 秒计时器。Windows.Forms.Timer
对于 WinForms 或DispatcherTimer
WPF。
(Task.Delay()
依次由计时器实现。)