猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
什么时候使用任务。延迟,什么时候使用线程。睡眠?
什么时候使用任务。延迟,什么时候使用线程。睡眠?
什么时候使用有好的规则吗?
任务延迟
对决
线,睡觉
?
具体来说,是否有一个最低值来提供一个比另一个有效/有效率?
最后,由于Task.Delay导致异步/等待状态机上的上下文切换,是否存在使用它的开销?
茅侃侃
浏览 573
回答 4
4回答
守候你守候我
使用Thread.Sleep当您想阻止当前线程时。使用Task.Delay当您想要逻辑延迟而不阻塞当前线程时。这些方法不应以效率为首要考虑。他们在现实世界中的主要用途是作为I/O操作的重试计时器,这是以秒而不是毫秒为单位的。
0
0
0
HUWWW
我想补充些东西。实际上,Task.Delay是基于计时器的等待机制。如果你看看来源您会发现对Timer类,它对延迟负责。另一方面Thread.Sleep实际上,使当前线程进入睡眠状态,这样您只会阻塞和浪费一个线程。在异步编程模型中,应该始终使用Task.Delay()如果你想要的东西(继续)发生了一些延迟。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C#
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续