当前位置:首页 > 每日看点 > 正文内容

C#为何一定要用asyn和await来异步执行,不可以直接Task.Run?

卡卷网1年前 (2025-01-02)每日看点201

先说结论

其实不是"一定要用async/await",而是它们各自有不同的使用场景。就像你不会用榔头去切菜,也不会用菜刀去钉钉子一样。

举个例子,你在必胜客点了一份披萨:

<>用async/await的情况:

//服务员接单后直接去忙别的了,披萨好了会通知你 awaitOrderPizzaAsync();

<>用Task.Run的情况:

//专门叫一个服务员站在厨房门口等披萨 Task.Run(()=>OrderPizza());

看出区别了吗?async/await就像是给披萨贴上了你的取餐号,你可以先去玩干别的;而Task.Run则是专门安排了一个人盯着你的披萨,VVVVVVIP级别的待遇,但这个服务员明显是浪费在这里了,纯纯摸鱼,那怎么能行!

来点专业的各自特点

<>async/await的特点

      不会占用额外的线程适合I/O作(数据库查询、文件读写、网络请求等)能最大化利用资源

<>Task.Run的特点

      会从线程池分配新线程适合CPU密集型作(大量计算、图像处理等)可能造成不必要的线程切换开销

就像在这样的使用场景下:

//推荐:处理WeAPI请求 pulicasyncTask<string>GetDataAsync() { retnawait.GetStringAsync("api/data"); } //推荐:处理大量计算 pulicTaskProcessigData() { retnTask.Run(()=>HeyCalculation()); }

<>但是也别这么整:

//反模式!不要这样做 pulicasyncTaskDoSomethingAsync() { awaitTask.Run(()=>File.ReadAllText("file.txt"));//错啦错啦 }

这就像点个外,非要雇个专车司机24小时待命一样,多此一举!

你就记住这句话:<>I/O作用async/await,CPU密集型作用Task.Run。能解决80%场景下的问题

如果觉得文章有帮助,记得点赞关注,我是旷野,探索无尽技术!

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/6160.html

分享给朋友:

相关文章

你为什么讨厌抖音?

我就被抖音毁了。现在被我媳妇从抖音里拯救出来了。我为什么会这样说?我媳妇硕士在读,我文化程度相对就比较低了。大多数人看抖音其实就是为了一图一乐呵刚开始我也是这样的,我是2017年在朋友的推荐下注册了抖音,刚开始那时候对抖音不太上瘾,一周也就...

为什么工资五千的人会一下花八九千买手机呢?

这其实是一个何不食肉糜的问题,这个问题其实很现实,越是月薪5000越需要高档手机。 前段时间看了一个纪录片,讲外卖小哥都用什么手机,结果发现绝大多数外卖小哥用的手机都是旗舰机型,有的时候宁可买二手也要买旗舰。 因为1外卖小哥对ip6...

闲鱼上为什么会有人问都不问直接下单?

我去年卖一个荣耀90,挂的2200,最终成交2137.5元。对方是一个高高壮壮的西北口音,要求的自取。大概我吃过午饭,约了旁边的商场,那里有荣耀售后。见了面,先看了手机,试了好一会儿,各种测试,没问题。然后去了商场二楼的荣耀售后,让人家售后...

只有我一个人后悔升级鸿蒙next吗?

只有我一个人后悔升级鸿蒙next吗?

我有一台mate 60 pro,第一时间升级了“纯血鸿蒙”。虽然功能并不完善,甚至有些简陋,但是我非常~非常不后悔升级鸿蒙next系统。因为.... 这就是一款“大型养成系游戏“,给我平淡的生活提供了源源不断的情绪价值。我每天特别...

都是前端框架,为什么用 React 的人会有优越感?

都是前端框架,为什么用 React 的人会有优越感?

上家公司一直搞react,最近第一次写个vue3项目。老板朋友来了看了下页面说:这用vue写的吧。我:是...老板朋友:一看就知道是vue做的。这tm你看一眼页面就知道用的啥框架?这感觉就是,我一直用苹果,偶尔用了下华为打电话,有个人离老远...

客观的讲,华为是不是真的遥遥领先?

客观的讲,华为是不是真的遥遥领先?

最近,华为上市了最新款的三折叠屏手机,于是很多大V们把这款手机吹上了天,吹成是技术上遥遥领先于全世界。谁要是敢质疑华而不实,就会被人扣上一顶汉奸卖国贼美狗的帽子。把一个商品捧成了宗教和菩萨,你只能说好,不能说不好。其实这个世界上,只要是人和...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。