用途:该技能是一份 .NET 异步编程指南,整理高效异步编程的 API 与模式,适用于构建非阻塞 I/O 操作或改进异步代码。
主要能力:涵盖核心 API(Task、Task<T>、ValueTask<T>、IAsyncEnumerable<T>);Task 与 ValueTask 的选用(同步完成频繁、缓存命中、高频调用时用 ValueTask);ConfigureAwait(false) 在库中的使用;异步流 IAsyncEnumerable 的声明与 await foreach 消费;CancellationToken 取消与超时设置;用 SemaphoreSlim 做并发限流;以及常见反模式(async void、.Result/.Wait()、不必要的 async/await)。
使用方式:按资料中的模式编写代码,例如缓存命中时返回 new ValueTask<Data>(cached),需要异步时返回 new ValueTask<Data>(LoadFromDbAsync(key));库代码中 await 后接 .ConfigureAwait(false);异步流方法标注 [EnumeratorCancellation] CancellationToken ct = default;用 CancellationTokenSource(TimeSpan.FromSeconds(30)) 设置超时;用 SemaphoreSlim(maxCount: 10) 配合 WaitAsync/Release 限流。
限制与注意:ValueTask 只能 await 一次,多次 await 可能出错;避免 async void、.Result 与 .Wait() 以防异常无法处理或死锁;无必要 async/await 时可直接返回 Task。资料另提供 QUICKREF.md 快速参考,具体内容暂未提供。