C#.NET 面试题 中高级篇(二) 
更新: 2024-07-01 18:36:35 字数: 0 字 时长: 0 分钟
async/await 底层源码阅读 
- async、await 内部其实是靠状态机机制实现的。 
- 编译器遇到 await 后会自动构建骨架与状态机,把 await 后面的代码挪到任务完成的后面继续执行。主线程第一次调用 MoveNext 方法时,如果任务已经完成会直接执行后面的操作,否则直接返回,不阻塞主线程的运行。后面的流程将交由线程池来调度完成。 
async/await 和同步代码区别 
- async/await 和同步代码中的区别主要包括:执行方式、返回值类型和代码结构。 
- 异步代码通过使用 async/await 关键字来标记,告诉编译器该代码可以异步执行。相比之下,同步代码是按顺序执行的,每一行代码都需要等待前一行代码执行完毕后才能继续执行。 
- 异步代码的主要优势在于能够提高程序的响应性能,特别是在处理 I/O 密集型任务时。同步代码则适用于对时间敏感的操作,因为同步代码执行的速度更可控。 





