1. 首页
  2. 数据库
  3. 其它
  4. C#关于Task.Yeild()函数的讨论

C#关于Task.Yeild()函数的讨论

上传者: 2021-02-01 06:52:45上传 PDF文件 290.73KB 热度 13次
在与同事讨论async/await内部实现的时候,突然想到Task.Yeild()这个函数,为什么呢,了解一点C#async/await内部机制的都知道,在await一个异步任务(函数)的时候,它会先判断该Task是否已经完成,如果已经完成,则继续执行下去,不会返回到调用方,原因是尽量避免线程切换,因为await后面部分的代码很可能是另一个不同的线程执行,而Task.Yeild()则可以强制回到调用方,或者说主动让出执行权,给其他Task执行的机会,可以把Task理解为协程,Task.Yeild()和Thread.sleep(0)有点相同。 为了证明我的结论成立,请看代码: pu
用户评论