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

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

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

先说结论

其实不是"一定要用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

分享给朋友:

相关文章

普通人一部手机用多久?

普通人一部手机用多久?

各位知友,你们的现在的手机用了多久了呢?回看国外分析机构TechInsights的报告,目前大家的用机周期是越来越长了,在国内,也达到了「40个月」,就是很多人至少三年半才会换一次手机。仔细想想,不对呀,现在新机不是一直出吗?为什么大家都不...

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

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

PHP承载百万/天 访问量需要用到什么技术?

当年做一个百万PV的商城,也不过是两台2c4g的阿里云虚机罢了(其实一台就够,另外一台主要的逼着大家一定开发的时候一定要有负载均衡和横向扩容的意识)。当时框架还是Thinkphp3.2,框架提高运行效率的开关全打开,标准的lnmp模式,单机...

想学习Linux下的ELF文件有什么好书推荐吗?

想学习Linux下的ELF文件有什么好书推荐吗?

大家好,这里是物联网心球。 今天我们来聊聊ELF文件,了解一下Linux如何创建进程以及ELF文件如何转变成Linux进程?1.什么是ELF文件? ELF(Executable and Linkable Format)文...

怎样拥有一台最便宜的服务器?

怎样拥有一台最便宜的服务器?

内容提示:主打一个 DIY + 极限白嫖 =)某宝花10块买一个“随身WiFi”,刷入Ubuntu,用SSH远程连接,但是记得一定要把外壳撬掉然后粘个散热器(哪怕是白萝卜也彳亍),否则会过热详细去酷安社区搜“随身WiFi”=========...

常微分方程的理论对偏微分方程的研究有没有帮助?

常微分方程的理论对偏微分方程的研究有没有帮助?

之前看到过一句话,好像是 Bourgain 说的,大意是做 ode 的做到深处就到了 pde,做 pde 的做到深处就到了 ode,ode 和 pde 最后是相通的。以我目前有限的知识,只知道下面两个方向:1. Hamilton 系统在现代...

发表评论

访客

看不清,换一张

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