C#异步编程:async修饰方法的返回类型说明
C#异步编程:async修饰方法的返回类型说明
- async修饰方法的返回类型
-
- 返回类型Task
- 返回类型Task<T>
- 返回类型void
- 返回类型使用实例
-
- 普通异步方法Demo
- 事件处理器Demo
- 避坑指南及总结
异步编程是C#开发的核心能力。C# 5.0引入的 async/await简化了异步操作的编写,使代码结构更像同步编程。但其返回类型的选择直接影响代码的健壮性和可维护性
async/await的介绍可参考:C#异步编程 async/await
async修饰方法的返回类型
async修饰的方法主要有三种返回类型:Task
、Task<T>
和void
返回类型Task
async Task AsynDoWork()
- 适用场景:普通异步方法,无需返回结果但需要等待完成
- 特点:可通过await或Task.Wait()等待完成,异常可被捕获
- 建议:推荐用于业务逻辑中的异步操作
返回类型Task
async Task<int> AsynDoWorkWithResult()
- 适用场景:需要异步执行并返回结果
- 特点:可通过await获取结果,异常可被捕获
- 建议:用于需要返回异步结果的场景
返回类型void
async void AsynDoWorkVoid()
- 适用场景:仅限于事件处理器(如按钮点击、菜单选择等UI事件),普通方法使用Task或Task
- 特点:无法被调用方捕获异常,也无法等待方法完成(即不能用await或Task.Wait())
- 建议:只在UI事件处理器中使用,普通方法应避免
返回类型使用实例
普通异步方法Demo
using System;
using System.Threading;
using System.Threading.Tasks;namespace AsnyDemo
{internal class Program{public static void Log(string message) =>Console.WriteLine($"{