在任务内使用Thread.Sleep()是否正确。还是仅将计时器(.Net 4.5及更高版本中的Task.Delay())与Task一起使用?也许存在另一种方法。
最佳答案
您可以在任务内使用Thread.Sleep
。
但是在大多数情况下,我更喜欢使用await Task.Delay
,它不会阻塞线程。
如果您使用的是Task.Run
(使用ThreadPool线程),则应尽量不要阻塞该线程。由于它是一个共享线程,因此可能还有其他代码在等待运行。
使用完线程后,我仍然会使用Thread.Sleep(0)
来产生处理器并放弃您的时间片。