如何进行Task.CompletedTask和Task.Result分析
发布时间:2021-12-09 11:02:18
来源:亿速云
阅读:458
作者:柒染
栏目:大数据
如何进行Task.CompletedTask和Task.Result分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
在任何返回Task的方法中,如果可以在不进行异步的情况下计算结果,则最好避免使用Task.Run。例如,一个简短的计算函数,或者测试中返回了一个预先计算过的结果,则无需使用Task.Run。例如,定义了一个返回Task的接口方法,但是在实现中,并没有特别耗时的代码。
public interface IComputer { Task Do(); Task
一般我们会这样实现。即使实现中代码很简短。public class Computer : IComputer { public Task Do() { return Task.Run(() => { //逻辑代码 }); } public Task
实际上,Task类上面有两个帮助程序,,这些帮助程序让代码更具可读性,并且所需的运行时开销更少。对于上述接口实现中的 Do方法,我更愿意使用Task.CompletedTask。
public Task Do() { //逻辑代码 return Task.CompletedTask; }
我们看一下CompletedTask的定义
///
如果返回Task
public Task
看一下FromResult的定义
///
通过上述的改变,即实现了接口的实现,也减少了Task.Run调用的系统开销。
看完上述内容,你们掌握如何进行Task.CompletedTask和Task.Result分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!