Task怎么提高异步执行效率
发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,本篇内容介绍了"Task怎么提高异步执行效率"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!async
千家信息网最后更新 2025年11月12日Task怎么提高异步执行效率
本篇内容介绍了"Task怎么提高异步执行效率"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
async Task 语法糖出来后,异步编程变得非常简单,适合需要耗费较长时间的任务。
有些小伙伴使用后可能会非常疑惑,使用异步和同步,在耗时上几乎没有差别。
下面我们看一个例子,场景是需要调用多个第三方的WebApi,分别是获取名称、年龄、性别,由于网络环境等原因,api响应时间可能会接近1秒
public async Task Test(){ var sw = new Stopwatch(); sw.Start(); var userName = await GetUserNameAsync(); var userAge = await GetUserAgeAsync(); var userSex = await GetUserSexAsync(); sw.Stop(); var ts = sw.Elapsed; Console.WriteLine($"总共耗时:{ts.TotalMilliseconds}ms");}private async Task GetUserNameAsync(){ await Task.Delay(500); return "小明";}private async Task GetUserAgeAsync(){ await Task.Delay(800); return "11";}private async Task GetUserSexAsync(){ await Task.Delay(900); return "11";} 运行后发现,这个时间2秒多,这用户体验肯定是无法忍受的

导致这样结果的原因是每次进行异步调用的时候,都在异步函数前加上了 await ,对于单单这个过程来说,其实相当于同步,等待直到结果返回,每个异步函数都await,时间自然就叠加了,为了解决这个问题,使用一个小技巧,可以将代码改成下面这样
public async Task Test(){ var sw = new Stopwatch(); sw.Start(); var userNameTask = GetUserNameAsync(); var userAgeTask = GetUserAgeAsync(); var userSexTask = GetUserSexAsync(); var userName = await userNameTask; var userAge = await userAgeTask; var userSex = await userSexTask; sw.Stop(); var ts = sw.Elapsed; Console.WriteLine($"总共耗时:{ts.TotalMilliseconds}ms");}private async Task GetUserNameAsync(){ await Task.Delay(500); return "小明";}private async Task GetUserAgeAsync(){ await Task.Delay(800); return "11";}private async Task GetUserSexAsync(){ await Task.Delay(900); return "11";} 这次运行的总耗时,就是3个异步中,耗时最长那个GetUserSexAsync
为什么会这样呢,这个小技巧的关键是这里,当执行到异步函数的时候,不加 await,不进行等待,让这些任务乖乖在别的线程的执行,当需要用到他们的时候,再去等待返回值,所以时间上不会进行叠加,哪个最长,总耗时就是哪个
var userNameTask = GetUserNameAsync();var userAgeTask = GetUserAgeAsync();var userSexTask = GetUserSexAsync();var userName = await userNameTask;var userAge = await userAgeTask;var userSex = await userSexTask;
"Task怎么提高异步执行效率"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
时间
函数
时候
效率
最长
任务
内容
原因
就是
技巧
更多
知识
结果
过程
小明
叠加
同步
运行
实用
学有所成
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
图书馆系统软件开发环境
上海夺会网络技术有限公司
扬州电子软件开发
端口转发 虚拟服务器
诚通集团 服务器 存储
苏州企业软件开发平台
软件开发收入怎么交税
有一个软件开发工具网页叫我
吉林省天驱服务器云空间
佛山网络安全技术培训包住宿
网络安全可以做什么实验
维护网络安全的短句
长城汽车底层软件开发岗
虹口区网络技术服务供应商
execl批量填写数据库
网络安全厂家营业额
天津常用软件开发市场报价
男女网络安全意识
无线传感器网络技术及发展
软件开发流程传统敏捷
少数民族法律数据库
删除所创建的数据库语句
诚通集团 服务器 存储
单板软件开发工程师的前景
ssm测试数据库连接
什么样的数据库可以受著作权保护
税局的发票数据库
api石油数据库
关于网络安全工作开展情况的报告
数据库的安全防护