惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
有赞技术团队
有赞技术团队
美团技术团队
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Engineering at Meta
Engineering at Meta
T
Tailwind CSS Blog
J
Java Code Geeks
Martin Fowler
Martin Fowler
I
InfoQ
小众软件
小众软件
MongoDB | Blog
MongoDB | Blog

博客园 - Shapley

项目心得 进程间通讯方式 C#使用MCP协议调用大模型示例 SQL Server LEAD函数实践 sql server行专列一例 数据库字段排序方法两则 Sql Server生成ULID例子 审批流进化记 winform+Task+async 献丑贴:Task.Run中foreach优化 Sql Server Begin TRY sample No service for type 'Microsoft.AspNetCore.Mvc.ViewFeatures.Filters.ValidateAntiforgeryTokenAuthorizationFilter' has been registered. 某低代码平台自定义控件技术点 Element-plus的el-date-picker控件动态切换中英文方案 Chrome浏览器无法查看页面跳转前的请求日志及解决办法 element-plus上传视频并生成缩略图(封面)方案 JWT自动刷新草案 Ajax方法POST的两种提交方式 H5项目在微信浏览器运行实录 Sql Server变量声明及使用技巧 修改Dify的Nginx对外访问端口 Task with Console(with SemaphoreSlim) asp.net core 9.0发布centos7.9 Barrier CountdownEvent
Task实战
Shapley · 2025-01-09 · via 博客园 - Shapley

一:场景描述

在一个文件下查找js文件中指定的关键字,并记录完成查找所需时间。完成此任务使用了3种写法,分别为:

1.使用一个task,在任务中进行for循环,循环调用异步处理方法。
2.先查找出文件路径,然后对每一个文件路径创建一个task,然后让这N个task并行处理。
3.也只利用一个task,在任务中进行for循环,循环调用同步业务方法。

二:运行结果:

 三:结论:

如果利用一个task,那么无论task中执行的方法为同步方法还是异步方法,执行效率无明显差异,互有胜负。由此,从代码编写角度而言,优先编写同步代码,能降低代码的维护难度,且无明显性能短板。而task调用异步方法仅仅是为了满足能调用异步代码而存在,在执行层面来说,与调用同步方法无本质区别,仅此而已。
如果将多个任务拆分成task数组,然后利用task并行处理,则发现性能有明显提升,与1、3方法相比,整体性能提升了至少一个档次。由此而言,优先使用task并行处理,其次再利用task执行后台任务。