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 }

同样感谢大佬们的观看!

posted @ 2025-03-28 15:02  一事冇诚  阅读(12529)  评论(0)    收藏  举报