我在使用C#中的异步方法方面还比较新。我读到这些关键字 async
和 await
可以通过将一些方法异步化来帮助使程序更加响应。我有以下代码片段:
第一种方式
public static void Main()
{
Console.WriteLine("Hello!! welcome to task application");
Console.ReadKey();
Task<string> ourtask = Task.Factory.StartNew<string>(() =>
{
return "Good Job";
});
ourtask.Wait();
Console.WriteLine(ourtask.Result);
Console.ReadKey();
}
第二种方法
public static void Main()
{
Launch();
}
public static async void Launch()
{
Console.WriteLine("Hello!! welcome to task application");
Console.ReadKey();
Console.WriteLine(await GetMessage());
Console.ReadKey();
}
public static Task<string> GetMessage()
{
return Task.Factory.StartNew<string>(() =>
{
return "Good Job";
});
}
我需要知道:
这两种实现方式(在并行概念上)有什么不同?
如果我可以创建一个任务并等待它完成,那么使用
async
和await
关键字的好处是什么?