Task.CompletedTask和Task.Result小记

365bet现场走地盘 ⌚ 2025-07-05 17:14:49 👤 admin 👁️ 681 ❤️ 869
Task.CompletedTask和Task.Result小记

在任何返回Task的方法中,如果可以在不进行异步的情况下计算结果,则最好避免使用Task.Run。例如,一个简短的计算函数,或者测试中返回了一个预先计算过的结果,则无需使用Task.Run。

例如,定义了一个返回Task的接口方法,但是在实现中,并没有特别耗时的代码。

public interface IComputer {

Task Do();

Task DoString();

}

一般我们会这样实现。即使实现中代码很简短。

public class Computer : IComputer

{

public Task Do()

{

return Task.Run(() => {

//逻辑代码

});

}

public Task DoString()

{

return Task.Run( () => {

//逻辑代码 return "aaa";

});

}

}

实际上,Task类上面有两个帮助程序,,这些帮助程序让代码更具可读性,并且所需的运行时开销更少。

对于上述接口实现中的 Do方法,我更愿意使用Task.CompletedTask。

public Task Do()

{

//逻辑代码

return Task.CompletedTask;

}

我们看一下CompletedTask的定义

///

Gets a task that has already completed successfully.

/// The successfully completed task.

public static Task CompletedTask { get; }

如果返回Task 怎么办?在这种情况下,如果您已经有了答案,请使用Task.FromResult包装答案。

public Task DoString()

{

//逻辑代码

return Task.FromResult("aaa");

}

看一下FromResult的定义

///

Creates a that's completed successfully with the specified result.

/// The result to store into the completed task.

/// The type of the result returned by the task.

/// The successfully completed task.

public static Task FromResult<[Nullable(2)] TResult>(TResult result);

通过上述的改变,即实现了接口的实现,也减少了Task.Run调用的系统开销。

·END·

相关数据

torch检查的黄金时间要记牢,这样才能确保宝宝无碍

torch检查的黄金时间要记牢,这样才能确保宝宝无碍

为了保障优生优育,在女性备孕和妊娠初期会要求女性做torch检查,该项检查主要是筛查筛查弓形虫、巨细胞病毒、单纯疱疹病毒和风疹病毒等

06-28 365bet赌城
黄志忠个人资料简介(身高/生日/年龄)

黄志忠个人资料简介(身高/生日/年龄)

黄志忠,飞天、白玉兰双料视帝之称的他,一直以深沉厚重的硬汉形象出现在荧屏中。从小打篮球的他曾是天津体工大队青年队的篮球运动员,

06-30 best365中国官网
轻松上手:一招教你手动运行Windows DLL文件,解锁更多可能!

轻松上手:一招教你手动运行Windows DLL文件,解锁更多可能!

在Windows操作系统中,DLL(Dynamic Link Library,动态链接库)文件扮演着至关重要的角色。它们允许程序共享代码和数据,从而减少重复代码和提升

06-27 365bet赌城
OPPO U707T(U2S/移动版)

OPPO U707T(U2S/移动版)

优点: 待机时间还行,差不多得两天(主要是我不玩游戏,看网页跟微信聊Q比较多些)。摄像头拍照还行,一张照片一M多,也比较清晰,但是

07-05 365bet赌城
㸆肉段的做法

㸆肉段的做法

后鞧或者底板肉,梅花肉。一斤半左右。切指甲盖大小 放点油,炒,在放一点酱油 高压锅压1分钟或者多煮一会。放一点料酒去腥。水要没过肉

07-04 365bet现场走地盘
1-2+读秒绝杀,他们又输了,比国足还惨:彻底无缘世界杯,8轮2分_手机网易网

1-2+读秒绝杀,他们又输了,比国足还惨:彻底无缘世界杯,8轮2分_手机网易网

北京时间3月26日凌晨,世界杯亚洲区预选赛第三阶段A组第八轮的三场比赛全部结束,其中的一场比赛,朝鲜队1-2不敌阿联酋队,这样一来,朝鲜

06-30 365bet现场走地盘