返回 C#个人专栏

async/await 异步编程

初学者重难点,偏偏还很有用

关于异步的常见问题

大部分源自个人学习时产生过的疑问,少部分来自网络。 1:异步就是为了解放UI线程吗? 不只是。解放 UI 线程只是最明显的 UI 程序:解放 UI 线程,让界面不卡 Web 服务端:解放工作线程,让服务器扛住更多并发 桌面应用:同时解放 UI 和后台 I/O 线程 移动端:省电省资源 异步的本质:在任何需要“等待”的场景下,把原本等待而不干活的假繁忙线程资源回收利用。 2:异步等待期间发生了什么? 一个任务的生命周期分三段...

(一)基础篇

程序的执行有“同步”和“异步”两种方式。 同步是一行干完再干下一行,异步是“你先去干,我接着走,好了叫我”。 同步就像你去柜台点餐,站在那儿等,菜出来了你才走,后面所有人都排队等你。 异步就像你扫码点餐,点完找个位置坐下玩手机,服务员做好了叫你,中间这段时间你可以干别的事。 代码里也一样。同步遇到耗时操作(读文件、查数据库、请求网络),程序就卡住不动,直到完成。异步遇到同样的事,把活丢出去,自己继续往下跑,等干完了再回来处理结果...