【发布时间】:2020-06-18 18:15:19
【问题描述】:
所以下面的代码会触发编译器警告:
"没有 await 操作符的异步函数会同步运行"
public async Task UpsertMariaDb()
{
IEnumerable<Task> insertTasks = InsertSomethingDb();
IEnumerable<Task> updateTasks = UpdateSomethingDb();
Task.WaitAll(insertTasks.ToArray());
Task.WaitAll(updateTasks.ToArray());
}
我的问题如下,关于 async/await 是否有一些我不了解的非常基本的东西,或者这只是一个编译器警告错误,因为我没有明确地“await”
【问题讨论】:
-
您应该在标记为
async的方法中使用await关键字。如果您只是调用Task.Wait...,则不需要将方法标记为async。 -
您的意思是使用
await Task.WhenAll()(异步)而不是Task.WaitAll()(同步)吗?
标签: c# .net-core async-await compiler-warnings