C# 是否需要等待单个异步调用

C# 是否需要等待单个异步调用,c#,asynchronous,async-await,C#,Asynchronous,Async Await,如果我返回单个异步函数的结果,例如,在应用程序层之间的服务中,以下两个函数之间是否有任何区别: public Task<byte[]> GetInsurancePolicyDocument(string itineraryReference) { return this.coreItineraryDocumentService.GetInsurancePolicyDocument(itineraryReference); } 公共任务GetI

如果我返回单个异步函数的结果,例如,在应用程序层之间的服务中,以下两个函数之间是否有任何区别:

    public Task<byte[]> GetInsurancePolicyDocument(string itineraryReference)
    {
        return this.coreItineraryDocumentService.GetInsurancePolicyDocument(itineraryReference);
    }
公共任务GetInsurancePolicyDocument(字符串行程参考)
{
返回此.coreInvestureDocumentService.GetInsurancePolicyDocument(行程参考);
}
以及:

公共异步任务GetInsurancePolicyDocument(字符串行程参考)
{
返回等待此.coreInventureDocumentService.GetInsurancePolicyDocument(行程参考);
}

在某些情况下有一些非常细微的差异-例如,如果原始的
任务返回时状态为
故障
,但返回时状态为
操作取消异常
,则
异步
版本将返回状态为
已取消
的任务。。。但是,除非您真的需要这些微妙之处,否则最好使用您的第一个代码并避免(非常轻微的)包装开销。

没有更多的上下文,这个答案是不可能回答的。顺便说一句,不要使用async/await,因为它很酷。当您确实需要它时使用它。@LexLi,我不同意,但它没有实际意义,这是一个副本。很明显,这个函数正在执行I/O操作,所以我不认为我正在使用async await“因为它很酷”。该服务和类似服务的结果最终会到达一个MVC控制器,在该控制器中异步等待它们(Task.WhenAll),然后再被困在视图模型中。
    public async Task<byte[]> GetInsurancePolicyDocument(string itineraryReference)
    {
        return await this.coreItineraryDocumentService.GetInsurancePolicyDocument(itineraryReference);
    }