在任务内使用Thread.Sleep()是否正确。还是仅将计时器(.Net 4.5及更高版本中的Task.Delay())与Task一起使用?也许存在另一种方法。

最佳答案

您可以在任务内使用Thread.Sleep
但是在大多数情况下,我更喜欢使用await Task.Delay,它不会阻塞线程。

如果您使用的是Task.Run(使用ThreadPool线程),则应尽量不要阻塞该线程。由于它是一个共享线程,因此可能还有其他代码在等待运行。

使用完线程后,我仍然会使用Thread.Sleep(0)来产生处理器并放弃您的时间片。

10-08 18:36