从任务调用Thread.Sleep

Ser*_*erG 4 .net delay task-parallel-library c#-4.0 thread-sleep

在任务中使用Thread.Sleep()是否正确.或者只是一个与任务一起使用的计时器(.Net 4.5和后者中的Task.Delay())?或者可能存在另一种方法.

dca*_*tro 5

可以使用Thread.Sleep任务中.但在大多数情况下,我更喜欢使用await Task.Delay不阻塞线程的情况.

如果你正在使用Task.Run(使用ThreadPool线程),那么你应该尽量不阻止线程.因为它是共享线程,所以可能还有其他代码在等待运行.

Thread.Sleep(0)当我使用线程时,我仍然会使用,以产生处理器并放弃你的时间片.

  • 实际上,你*可以*使用它,但就OP而言,我会说当它可以处理其他工作时,睡觉任务池线程肯定是"不正确"! (2认同)