原文链接:https://www.cnblogs.com/ysmc/p/18798097
C# 异步编程的好处
异步编程是C#中非常重要的特性,它能让你的程序更高效、更流畅。我来用简单的方式解释它的好处:
1. 七窍玲珑心 – “边敲代码边和女朋友通话”
-
同步代码就像你敲代码时必须双手离开键盘才能接女朋友的电话
-
异步代码让你可以边敲代码边和女朋友通话,不影响写bug,女朋友也哄不好
2. 人力资源合理应用 – “餐厅服务员”
-
同步就像服务员一次只服务一桌,其他桌干等着
-
异步就像服务员点完一桌菜就去服务下一桌,等菜好了再回来
3. 人员合理化运用 – “不浪费线程”
-
同步会占用线程傻等(像雇人站着等水烧开)
-
异步在等待时释放线程去做其他事(让工人去干别的活)
4. 客户至上 – “不转圈圈”
-
同步操作时用户界面会冻结(转圈圈)
-
异步操作时界面保持响应(可以继续操作)
5. 适合IO操作 – “快递驿站”
-
读取文件、网络请求等IO操作特别适合异步
-
你不需要等着快递的到来,让快递员放驿站,你空了再去拿好了
简单代码对比
1 public class TestService 2 { 3 private readonly IHttpClientFactory _httpClientFactory; 4 5 public TestService(IHttpClientFactory httpClientFactory) 6 { 7 _httpClientFactory = httpClientFactory; 8 } 9 10 // 同步方式 - 会卡住UI 11 public object GetData() 12 { 13 using var httpClient = _httpClientFactory.CreateClient(); 14 var data = httpClient.GetByteArrayAsync("https://example.com"); 15 // 在获取完成前什么都做不了 16 return data; 17 } 18 19 // 异步方式 - 不会卡住UI 20 public async Task<object> GetDataAsync() 21 { 22 using var httpClient = _httpClientFactory.CreateClient(); 23 var data = await httpClient.GetByteArrayAsync("https://example.com"); 24 // 在获取过程中程序可以干别的 25 return data; 26 } 27 }
同样感谢大佬们的观看!
来源链接:https://www.cnblogs.com/ysmc/p/18798097
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容