在这种情况下,由于某些条件,我的任务可以立即返回:
public async Task Test(List<int> TestList)
{
if (TestList.Count() == 0)
return;
// Do something
await UploadListAsync(TestList);
}
它是否正确return;
,我应该使用Task.FromResult(false);
,还是有更正确的方式?
答案 0 :(得分:11)
当您使用async
时,您无法显式返回Task
(请参阅编辑) - 编译器已将返回值装箱为{的返回值{1}}。因此,如果他们需要尽早摆脱逻辑,那么Task
方法应该像其他方法一样行事,并async
。
修改强>
有一次你在return
期间返回Task
,如果返回类型是async
,那么这仍然会返回内部Task<Task...
,而不是外部,因为编译器完成了相同的包装。这也应该是一个相当罕见的用例,而不是Task
- await
s链
答案 1 :(得分:0)
Task
是新的void
!
关于async
方法!