当我们在代码中的调用await Task.Delay(x),我们并不是在指示程序“此处暂停x毫秒”,而是在说:“我已经完成了我能做的所有工作,你可以去运行其他任务了,x毫秒后请唤醒我继续我的工作”。这样看起来,Task.Delay并不像是一个暂停指令,而更像是一个让时间调度器知道当前任务可以被暂时挂起,而去运行其他任务的信号。
下面这个例子或许可以更明确地展示Task.Delay和Thread.Sleep的区别:
using System;
using System.Threading;
using System.Threading.Tasks;
using ConsoleApp1;
public class

最低0.47元/天 解锁文章
734

被折叠的 条评论
为什么被折叠?



