C#异步编程的好处

原文链接: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

© 版权声明
THE END
支持一下吧
点赞7 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容