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

时间:2016-01-27 14:42:09

标签: c# async-await

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

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

    // Do something
    await UploadListAsync(TestList);
}

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

2 个答案:

答案 0 :(得分:11)

当您使用async时,您无法显式返回Task(请参阅编辑) - 编译器已将返回值装箱为{的返回值{1}}。因此,如果他们需要尽早摆脱逻辑,那么Task方法应该像其他方法一样行事,并async

修改 有一次你在return期间返回Task,如果返回类型是async,那么这仍然会返回内部Task<Task...,而不是外部,因为编译器完成了相同的包装。这也应该是一个相当罕见的用例,而不是Task - await s链

答案 1 :(得分:0)

Task是新的void

关于async方法!