不应该发生关于异步的编译器警告

Compiler warning about async shouldn't happen

所以下面的代码会触发编译警告:

"没有 await 运算符的异步函数将 运行 同步"

    public async Task UpsertMariaDb()
    {
        IEnumerable<Task> insertTasks = InsertSomethingDb();
        IEnumerable<Task> updateTasks = UpdateSomethingDb();

        Task.WaitAll(insertTasks.ToArray());
        Task.WaitAll(updateTasks.ToArray());
    }

我的问题如下,关于 async/await 是否有一些我不理解的非常基本的东西,或者这只是一个编译器警告错误,因为我没有明确的“await "

Task.WaitAll 阻塞当前线程,因此警告是正确的 - 您尝试实现一个异步方法,但它不是异步的,因为没有任何等待。

您可能打算这样做:

public async Task UpsertMariaDb()
{
    IEnumerable<Task> insertTasks = InsertSomethingDb();
    IEnumerable<Task> updateTasks = UpdateSomethingDb();

    await Task.WhenAll(insertTasks);
    await Task.WhenAll(updateTasks);
}