返回Task <t>

时间:2019-04-21 17:52:20

标签: c# async-await task

我试图了解以下两种方法之间的区别。假设这是中间层/业务层功能,这些方法签名之间是否有任何区别?

public Task<IList<EntityDocument>> GetEntityDocument(string id)
{
    return this.GetEntityDocuments(new[] { id});
}

public async Task<IList<EntityDocument>> GetEntityDocument(string id)
{
    return await this.GetEntityDocuments(new[] { id});
}

在第二种方法签名中,我另外添加了一个异步/等待。其结果将是相同的。当从异步控制器方法或任何其他调用方调用这些方法中的任何一个时,一切都将正常运行(我实际上将在此等待该调用)。那我使用哪一个真的重要吗?

为了完整起见,还添加了内部方法调用(实际上是进行网络调用并等待。

public async Task<IList<EntityDocument>> GetEntityDocuments(string[] ids)
{
    // Prepare http client, headers etc
    // other non async code....

    // Do Some http call and return response
    return await this.messagingClient.PostAsync<string[], IList<EntityDocument>>(
        ids,
        requestHeader,
        null,
        queryParameters).ConfigureAwait(false);
}

0 个答案:

没有答案