异步编程在 .NET Core 中变得越来越重要,async
和 await
关键字是实现异步编程的基础。下面我们将通过一个示例来说明如何使用它们。
示例代码
下面是一个简单的示例,演示了如何使用 async
和 await
来执行异步操作:
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
string url = "https://jsonplaceholder.typicode.com/posts/1";
string result = await FetchDataAsync(url);
Console.WriteLine(result);
}
static async Task<string> FetchDataAsync(string url)
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
}
}
解释
Main
方法 : 我们在Main
方法中使用了async
关键字并返回Task
,这表示它是一个异步方法。然后我们使用await
调用FetchDataAsync
方法,这将暂停Main
方法的执行,直到FetchDataAsync
方法完成并返回结果。FetchDataAsync
方法 : 这个方法同样使用了async
关键字,表示它是一个异步方法。它通过HttpClient
发送一个 HTTP GET 请求,并等待响应。我们使用await
关键字来等待GetAsync
和ReadAsStringAsync
方法,这些方法都是异步的。await
关键字 :await
用于暂停执行,直到异步操作完成。当我们调用await
时,控制权会立即返回给调用者,允许其他工作在线程等待异步操作完成时继续执行。
结论
通过使用 async
和 await
,我们可以轻松地编写高效的异步代码,从而提高应用程序的性能和响应速度。