async/await(不会)

本文详细介绍了C#中如何使用async和await关键字实现异步编程,通过HttpClient示例展示了如何以同步方式读取并异步执行请求,强调了Task和awaiter模式在异步方法中的应用。
摘要由CSDN通过智能技术生成

async/await

C# 支持含两个关键字的异步程序:async 和 await。 将 async 修饰符添加到方法声明中,以声明这是异步方法。 await 运算符通知编译器异步等待结果完成。 控件返回给调用方,该方法返回一个管理异步工作状态的结构。 结构通常是 System.Threading.Tasks.Task<TResult>,但可以是任何支持 awaiter 模式的类型。 这些功能使你能够编写这样的代码:以其同步对应项的形式读取,但以异步方式执行。 例如,以下代码会下载 Microsoft Docs 的主页:

C#复制

public async Task<int> RetrieveDocsHomePage()
{
    var client = new HttpClient();
    byte[] content = await client.GetByteArrayAsync("https://learn.microsoft.com/");

    Console.WriteLine($"{nameof(RetrieveDocsHomePage)}: Finished downloading.");
    return content.Length;
}

这一小型示例显示了异步编程的主要功能:

  • 方法声明包含 async 修饰符。
  • 方法 await 的主体是 GetByteArrayAsync 方法的返回。
  • return 语句中指定的类型与方法的 Task<T> 声明中的类型参数匹配。 (返回 Task 的方法将使用不带任何参数的 return 语句)。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值