1.async和await
在C#中,async和await是用于处理异步操作的关键字。
- async: 用于定义一个方法是异步的。当一个方法被声明为async时,它可以包含await表达式,并且其返回类型通常是Task或Task。
- await: 用于暂停异步方法的执行,等待异步操作的完成。在使用await关键字时,其后面的表达式通常是一个返回Task或Task的方法调用,或者其他符合异步编程模型的对象。
以下是一个简单的示例:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string url = "https://api.example.com/data";
string data = await GetDataAsync(url);
Console.WriteLine(data);
}
static async Task<string> GetDataAsync(string url)
{
using (var client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
}
在这个示例中,Main方法是异步的,它调用了GetDataAsync方法并使用await等待异步操作的完成。GetDataAsync方法也是异步的,它使用HttpClient来进行异步HTTP请求,并使用await等待响应结果。
2.使用async流
在 C# 中,可以使用 async 和 await 关键字来创建异步流。通过 async/await 可以编写具有顺序执行和清晰逻辑的异步代码。
下面是一个简单的示例,演示了如何在 C# 中使用 async 和 await 创建异步流:
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
Console.