.NET async/await:在这种情况下我应该返回一些东西吗?

Fra*_*zzi 8 c# async-await

在这种情况下,由于某些条件,我的任务可以立即返回:

public async Task Test(List<int> TestList)
{
    if (TestList.Count() == 0)
        return;

    // Do something
    await UploadListAsync(TestList);
}
Run Code Online (Sandbox Code Playgroud)

它是正确的return;,我应该使用Task.FromResult(false);,还是有更正确的方法?

Dav*_*vid 11

当你使用a时async,你不能Task明确地返回一个(参见编辑) - 返回值已被编译器装箱,作为返回值Task.因此,您的async方法应该像其他方法一样,return如果他们需要尽早摆脱逻辑.

编辑: 在一个时间,你可以返回Task过程中async是如果返回类型Task<Task...,但是这仍然会返回内心Task,而不是外表,因为编译器已经做了同样的包装.这也应该是一个相当罕见的用例,而不是await一连串的Tasks