AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C#
C#
级别 59
阻塞调用的问题
C# SELF
等级 59,
课时 0
我们来分析为什么阻塞操作(输入、磁盘、网络、数据库)会降低 UI 的响应性并“吞噬”服务器上的线程池,如何识别它们以及用什么来替代。实践例子包括
Console.ReadLine()
,
Thread.Sleep
,
HttpClient
;直观表格“什么会阻塞,什么不会”以及基于
async
/
await
的现代异步方法入门。
异步 vs. 多线程 (
async/await
和
Thread
)
C# SELF
等级 59,
课时 1
讲解 .NET 中异步和多线程的关键差异:什么时候使用并行线程,什么时候使用
async/await
,如何为 CPU- 和 I/O 任务组合这些方法,以及在设计响应式应用时应避免的错误。
关键字
async
和
await
C# SELF
等级 59,
课时 2
我们来剖析 C# 里的现代异步:async 和 await 做了什么,它们与线程有什么区别,如何为 I/O 操作写非阻塞代码,以及常见错误和最佳实践。带有直观示例、执行流程图和使用场景对比。
异步方法的结构 (
async
/
await
)
C# SELF
等级 59,
课时 3
深入了解 C# 异步方法的内部结构:解析带有
async
的签名、通过
await
的非阻塞等待、各种返回类型 (
Task
,
Task<T>
,
ValueTask
)、状态机在底层的工作,以及常见坑和带注释的实用示例。
在异步代码中处理异常
C# SELF
等级 59,
课时 4
异步方法里的异常是怎么表现的:为什么在调用周围加
try
-
catch
并不总是有用,如何正确等待任务用
await
,什么时候可以用
.Wait()
/
.Result
,
Task.WhenAll
里发生了什么,以及如何安全地写事件处理器。实用示例、
AggregateException
的细节和对 "fire-and-forget" 的建议。
Please enable JavaScript to continue using this application.