- 执行某些操作
- 开始执行异步操作,并记住返回的token(通常为Task,或者Task<TResult>)
- 可能会执行其他操作,相当于在await之前再做一些其他的操作,一般不这么做。
- 等待异步操作完成(通过await token)
- 执行其他错作
- 完成
static async Task<int> GetPageLengthAsync(string url)//异步方法
{
using (HttpClient client = new HttpClient())
{
Task<string> fetchTextTask//异步方法和异步操作的边界
= client.GetStringAsync(url);//异步操作
int length = (await fetchTextTask).Length;
return length;
}
}
static void PrintPageLength()//调用方法
{
Task<int> lengthTask //调用方法和异步方法的边界
= GetPageLengthAsync("http://csharpindepth.com");
Console.WriteLine(lengt