异步并等待返回类型混淆

loo*_*oop 4 .net c# asynchronous async-await windows-8

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

private async void methodasync1(filename)
{
    await getfileaysnc(filename);
}
Run Code Online (Sandbox Code Playgroud)

和其他函数methodasync2()一样

private async Task methodasync2(filename)
{
    await getfileasync(filename);
}
Run Code Online (Sandbox Code Playgroud)

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

BFr*_*ree 5

当一个方法返回类型为void时,它无法等待,它本质上是一个"发射并忘记".因此,在您的情况下调用methodasync1的方法无法知道它何时实际完成.在第二种情况下,methodasync2,因为你正在返回一个Task,它可以等待,所以调用方法可以知道它何时实际完成.