在继续使用其他方法并且不冻结我的UI之前,我可以做一些类似的事情,例如5秒钟,等等吗?
System.Threading.Tasks.Task.Factory.StartNew(() =>
{
System.Threading.Thread.Sleep(5000);
// Code to do some method
});
答案 0 :(得分:8)
您应该使用:
await Task.Delay(5000);
答案 1 :(得分:1)
Thread.Sleep()
。在5秒内阻止线程/任务是没有用的。
如@Jeroen van Langen's answer中所述,await Task.Delay()
是最好的方法。但是,如果由于某种原因您无法使用async/await
机制,则第二个最佳选择是设置一次性5秒计时器。 WinForms为Windows.Forms.Timer
,WPF为DispatcherTimer
。
(Task.Delay()
依次由计时器实现。)