CodeSnippet.Cn
代码片段
Csharp
架构设计
.NetCore
西班牙语
kubernetes
MySql
Redis
Algorithm
Ubuntu
Linux
Other
.NetMvc
VisualStudio
Git
pm
Python
WPF
java
Plug-In
分布式
CSS
微服务架构
JavaScript
DataStructure
Shared
C#中的Task.Delay()和Thread.Sleep()
0
Csharp
小笨蛋
发布于:2021年07月08日
更新于:2021年07月08日
147
#custom-toc-container
1. Thread.Sleep()是同步延迟,Task.Delay()是异步延迟。 2. Thread.Sleep()会阻塞线程,Task.Delay()不会。 3. Thread.Sleep()不能取消,Task.Delay()可以。 4. Task.Delay()实质创建一个运行给定时间的任务,Thread.Sleep()使当前线程休眠给定时间。 5. 反编译Task.Delay(),基本上讲它就是个包裹在任务中的定时器。 6. Task.Delay()和Thread.Sleep()最大的区别是Task.Delay()旨在异步运行,在同步代码中使用Task.Delay()是没有意义的;在异步代码中使用Thread.Sleep()是一个非常糟糕的主意。通常使用await关键字调用Task.Delay()。 7. 我的理解:Task.Delay(),async/await和CancellationTokenSource组合起来使用可以实现可控制的异步延迟。
这里⇓感觉得写点什么,要不显得有点空,但还没想好写什么...
返回顶部
About
京ICP备13038605号
© 代码片段 2024