c# async await 示例
时间: 2024-06-23 10:02:20 浏览: 172
在C#中,`async`和`await`关键字是用于编写异步代码的关键特性,它们配合使用可以让代码更易于理解和维护。下面是一个简单的`async`/`await`示例,展示了如何从网络获取数据并处理结果:
```csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
using (HttpClient httpClient = new HttpClient())
{
// 使用 async 方法发送异步 GET 请求
HttpResponseMessage response = await httpClient.GetAsync("https://api.example.com/data");
// 确保请求成功,状态码200
if (response.IsSuccessStatusCode)
{
// 使用 await 获取响应内容并解码为字符串
string data = await response.Content.ReadAsStringAsync();
// 处理获取的数据
Console.WriteLine($"Received data: {data}");
}
else
{
Console.WriteLine($"Request failed with status code: {response.StatusCode}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error occurred: {ex.Message}");
}
}
}
```
在这个例子中:
- `async`关键字用于标记方法是异步的,这样可以在方法内部使用`await`关键字暂停执行直到异步操作完成。
- `await httpClient.GetAsync()`会暂停主线程直到HTTP请求完成,然后返回响应对象。
- `await response.Content.ReadAsStringAsync()`同样用于异步读取响应内容。
- `catch`块处理可能出现的任何异常。
阅读全文