异步编程之async,await

简介

C# 5引入异步编程,可以在.NET Framework 4.5及更高版本或者.NET Core中进行异步编程。关于异步编程的主要使用场景,参见使用 Async 和 Await 的异步编程 (C#)

示例

static void Main(string[] args)
{
    MainAsync().GetAwaiter().GetResult();   //模拟异步main
}

/// <summary>
/// 模拟异步main
/// </summary>
/// <returns></returns>
static async Task MainAsync()
{
    int contentLength = await AccessTheWebAsync();
    Console.WriteLine($"Length of downloaded string:{contentLength}");
}
static async Task<int> AccessTheWebAsync()
{
    HttpClient client = new HttpClient();
    Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");
    DoIndependentWork();
    string urlContents = await getStringTask;
    return urlContents.Length;
}
static void DoIndependentWork()
{
    System.Console.WriteLine("Working......\r\n");
}

参考

async & await 的前世今生(Updated)
异步编程 In .NET
使用 Async 和 Await 的异步编程 (C#)
async(C# 参考)

源码

https://github.com/zhaobingwang/Demo/tree/master/AysncDemo

猜你喜欢

转载自blog.csdn.net/zhaobw831/article/details/79611124