在没有等待的情况下使用async

Eri*_*Yin 33 c# asynchronous async-await c#-5.0 visual-studio-2012

我想创建一个异步函数,所以我只需添加async如下:

public async static void something(){
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它的返回类型是void.我只是想这一功能,必须异步调用不会阻塞,因为回报void所以没有await需要.

但Visual Studio 2012只是无法编译这个,它说我想念await

你能告诉一个async没有使用功能的样品吗await

svi*_*ick 33

我想也许你会误解是什么async.警告是完全正确的:如果您标记方法async但不在await任何地方使用,那么您的方法将不是异步的.如果调用它,方法中的所有代码将同步执行.

此外,您应该尽量避免使用async void方法,它们会使处理异常变得困难.

  • `async`不会让你的方法神奇地阻止.如果要在另一个线程上运行某些代码,请使用`Task.Run()`. (9认同)
  • 哦,明白了,我误解了音乐会,异步标记方法将使用异步调用并不意味着本身就是异步. (6认同)
  • @Patrick然后你可以使用`Task.Run()`在另一个线程上运行它。 (2认同)