使用await的好处是await后边代码处于等待状态,任务结束后再继续向下执行。以下没用WPF工程,使用一个控制台程序进行演示。
using System;
using System.Globalization;
using System.Threading.Tasks;
namespace asyncTest
{
class Program
{
static string Greeting(string name)
{
Task.Delay(3000).Wait();
return $"Hello,{name}";
}
static Task<string> GreetingAsync(string name)
{
return Task.Run<string>(()=>
{ return Greeting(name); });
}
async static void CallerWithAsync()
{
Console.WriteLine("开始执行await:" + DateTime.Now.ToString("yyyy年MM月dd日hh时mm分ss秒", DateTimeFormatInfo.InvariantInfo));
string result = await GreetingAsync("WPF");
Console.WriteLine(result);
Console.WriteLine(DateTime.Now.ToString("等待结束,开始继续执行 " + "yyyy年MM月dd日hh时mm分ss秒", DateTimeFormatInfo.InvariantInfo));
}
static void Main(string[] args)
{
CallerWithAsync();
Console.ReadLine();
}
}
}