用途:帮助开发者遵循 C# 异步编程最佳实践,并在代码审查中识别问题、给出改进建议。
主要能力与要点: 命名约定:异步方法使用 Async 后缀,并尽量与同步版本对应(如 GetDataAsync() 对应 GetData())。 返回类型:有返回值用 Task<T>,无返回值用 Task;高性能场景可考虑 ValueTask<T> 以减少分配;除事件处理器外避免 async void。 异常处理:在 await 表达式周围使用 try/catch,避免吞掉异常;库代码中适当使用 ConfigureAwait(false) 防止死锁;在返回 Task 的异步方法中用 Task.FromException() 传播异常,而非直接抛出。 性能:用 Task.WhenAll() 并行执行多个任务,用 Task.WhenAny() 实现超时或取首个完成任务;避免仅传递任务结果时不必要的 async/await;长时间运行操作考虑取消令牌。 常见陷阱:异步代码中绝不使用 .Wait()、.Result 或 .GetAwaiter().GetResult();避免混用阻塞与异步代码;不要创建 async void 方法(事件处理器除外);始终 await 返回 Task 的方法。 实现模式:长时间运行操作采用异步命令模式;用异步流 IAsyncEnumerable 异步处理序列;公共 API 考虑基于任务的异步模式(TAP)。
使用方式:在审查 C# 代码时,按上述条目识别问题并给出符合最佳实践的改进建议。
限制:资料未提供具体安装命令、平台支持、收费信息或完整代码示例,相关细节暂未提供。