异步并等待返回类型混淆

时间:2013-09-12 05:03:30

标签: c# .net asynchronous windows-8 async-await

您好朋友我想知道某些异步方法的返回类型对其行为的影响,就像我有一个名为methodasync1()的方法一样

private async void methodasync1(filename)
{
    await getfileaysnc(filename);
}

和其他函数methodasync2()类似

private async Task methodasync2(filename)
{
    await getfileasync(filename);
}

两种功能都以相同的方式工作或存在任何差异。 以及我应该知道的任何概念,请告诉我任何想法和帮助表示赞赏

1 个答案:

答案 0 :(得分:5)

当一个方法返回类型为void时,它是无法等待的,它本质上是一个“火上浇油”。因此,在您的情况下调用methodasync1的方法无法知道它何时实际完成。在第二种情况下,methodasync2,因为你正在返回一个Task,它可以等待,所以调用方法可以知道它何时实际完成。