0

我想我的问题归结为:

给定两个异步方法,其中一个调用另一个。我应该在这两种方法中等待,还是只在第一种方法中等待?

这是我的场景。我正在使用 CQRS 和 MediatR 编写一个 ASP NET CORE WEB API。

我有这个异步 API 方法

[HttpGet]
public async Task<IActionResult> Get(Get.Query query)
{
    var result = await _mediator.Send(query);
    return Ok(result);
}

我还应该在我的 中异步/等待RequestHandler吗?像这样

public class QueryHandler : IAsyncRequestHandler<Query, IEnumerable<Result>>
{
    public async Task<IEnumerable<Result>> Handle(Query message)
    {
        return await _connection.QueryAsync<Result>("...");
    }
}

或者我应该简单地这样做

public class QueryHandler : IAsyncRequestHandler<Query, IEnumerable<Result>>
{
    public Task<IEnumerable<Result>> Handle(Query message)
    {
        return _connection.QueryAsync<Result>("...");
    }
}

我感到困惑的原因是因为API请求已经在一个线程中。那么将它包装在另一个线程中不是正确的方法吗?我看过这两个例子:/

4

0 回答 0