是否有必要等待单个异步调用

本文关键字:单个 异步 调用 等待 是否 | 更新日期: 2023-09-27 18:06:06

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

    public Task<byte[]> GetInsurancePolicyDocument(string itineraryReference)
    {
        return this.coreItineraryDocumentService.GetInsurancePolicyDocument(itineraryReference);
    }

:

    public async Task<byte[]> GetInsurancePolicyDocument(string itineraryReference)
    {
        return await this.coreItineraryDocumentService.GetInsurancePolicyDocument(itineraryReference);
    }

是否有必要等待单个异步调用

在某些情况下有一些非常微妙的差异-例如,如果原始的Task返回状态为Faulted,但具有OperationCanceledException,那么async版本将返回状态为Canceled的任务…但是,除非您确实需要这些微妙的东西,否则通常最好使用您的第一个代码,并避免包装它的(非常轻微的)开销。