2026-04-16 17:31:49
感谢指出!但这里确实是等待了的 😄await Task.Delay(1000) 会等待 1 秒才继续执行下一行,并不是"没等待"。区别在于等待期间线程去哪了:Thread.Sleep(1000):线程被阻塞,干等着,啥也不能干await Task.Delay(1000):线程被释放回线程池,可以去处理其他请求1 秒后都会继续执行,但 Task.Delay 期间线程没被占用,这就是高并发下性能差 40 倍的原因。可以加个日志验证:Console.WriteLine("开始: " + DateTime.Now);await Task.Delay(1000);Console.WriteLine("结束: " + DateTime.Now); // 确实等了1秒如果不加 await 才是"没等待",那确实是 bug 了 👍
评论于: C# 面试翻车:Thread.Sleep 和 Task.Delay 性能差 40 倍!