AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C#
C#
级别 62
异步数据流
C# SELF
等级 62,
课时 0
这节讲座我们讲 C# 的异步序列:
IAsyncEnumerable<T>
、通过
await foreach
的迭代、使用
CancellationToken
的取消以及属性 [
EnumeratorCancellation
]。还会讲用
IAsyncDisposable
和
await using
做异步释放资源,什么时候需要以及怎么在实践中用(逐行异步读大文件、网络流、服务器端 API)。都有示例和使用细节。
同步和异步生成器在 C# 中的使用(
yield
)
C# SELF
等级 62,
课时 1
在这节课里你会学会如何在 C# 中用基于
yield
的生成器懒惰且安全地生成数据:什么是
yield return
和
yield break
,编译器如何为
IEnumerable<T>
/
IEnumerator<T>
构建状态机,生成器在实践中的应用,以及如何通过
IAsyncEnumerable<T>
、
await foreach
、
await using
、
IAsyncDisposable
和
CancellationToken
工作。还有——限制、坑和高效使用的建议。
性能优化:
ValueTask
C# SELF
等级 62,
课时 2
在这节课里我们会拆解一下
ValueTask
这个结构是怎么减少在异步 API 中的分配的——尤其是在很多情况下结果可以立即得到的时候。我们会把它和
Task
做对比,讨论使用规则、陷阱(比如重复
await
)、通过
AsTask()
的转换以及带缓存的真实场景。你会知道什么时候坚持用传统的
Task
,什么时候真的值得用
ValueTask
。
Channel: 生产者–消费者 (
Channel
)
C# SELF
等级 62,
课时 3
在这节课里你会认识异步通道
Channel
,用来构建“生产者–消费者”模式:我们会弄清楚通道和
BlockingCollection<T>
、
ConcurrentQueue<T>
有什么区别,学会使用
WriteAsync
,
ReadAsync
和
ReadAllAsync
,创建 unbounded 和 bounded 管道,配置选项,并讨论通过
Complete()
关闭时常见的坑。
异步与同步代码的交互
C# SELF
等级 62,
课时 4
在本讲我们会讲怎么在 C# 中安全地混合异步和同步代码:为什么
await
会把方法“断开”,
SynchronizationContext
和
TaskScheduler
怎么工作,在哪些场景适合用
ConfigureAwait(false)
,还有
.Result
/
.Wait()
会从哪里冒出 deadlock。我们会给出实用的模式、规则和常见错误,帮你保持 UI 响应,服务器高性能。
Please enable JavaScript to continue using this application.