我想让一个函数异步,所以我简单地添加async
如下:
public async static void something(){
}
你可以看到它的返回类型是void
. 我只是希望这个函数被异步调用而不阻塞,因为 return 是void
不需要await
的。
但是 Visual Studio 2012 无法编译它,它说我想念await
?
您能否提供一个async
不使用await
.
我想让一个函数异步,所以我简单地添加async
如下:
public async static void something(){
}
你可以看到它的返回类型是void
. 我只是希望这个函数被异步调用而不阻塞,因为 return 是void
不需要await
的。
但是 Visual Studio 2012 无法编译它,它说我想念await
?
您能否提供一个async
不使用await
.
我认为也许你误解了什么async
。警告是完全正确的:如果您标记您的方法async
但不在await
任何地方使用,那么您的方法将不是 asynchronous。如果调用它,方法内的所有代码都会同步执行。
此外,您应该尽量避免使用async void
方法,它们会使处理异常变得困难。
改成
public async Task something(){
return await Task.Factory.StartNew(() => {
//TODO:
}
}
您不必等待返回的任务;)
所以或者你可以只使用一个任务并删除 async 和 await 然后你得到:
public Task something(){
return Task.Factory.StartNew(() => {
//TODO:
}
}
任务隐含无效,如果您不使用通用返回类型参数