简介
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# 参考)