【发布时间】:2015-12-02 20:29:04
【问题描述】:
我想澄清一下。我知道 Task.Delay 将在内部使用 Timer 并且它显然是基于任务的(等待),而 Thread.Sleep 将导致线程被阻塞。但是,在任务上调用.Wait会导致线程被阻塞吗?
如果不是,人们会认为Task.Delay(2500).Wait() 比Thread.Sleep(2500) 好。这与我称为.Wait() 的SO question/answer here 略有不同。
【问题讨论】:
-
为什么会更好?
-
是的,
.Wait()上的Task是一个阻塞调用。从您的角度来看,它们本质上是等价的。 -
您的 2 个选项提供了如此相似的功能,我认为您确实需要澄清“更好”的含义。
标签: c# multithreading async-await task-parallel-library task