在另一个等待中使用await

时间:2017-01-13 01:58:29

标签: c# async-await

我正在开发一个web api,我有一些来自EF的异步方法。我在网上看到的所有例子都显示简单的电话或snipets,但不是我想要的......所以,这是我的问题:

我在我的存储库类中有这个方法:

public async Task GuardarLibro(Book book)
{
    var dbLibro = _libroConverter.Convert(libro);

    using (_migraPleContext)
    {
        _migraPleContext.Libro.Add(dbLibro);
        await _migraPleContext.SaveChangesAsync();
    }
}

然后我有另一个调用我的存储库的类...因为,我的存储库中的方法是异步的,我这样称呼它:

var libroDb = _libroConverter.Convert(libro);
await _libroRepository.GuardarLibro(libroDb);

我的问题是,如果这种方法是正确的。我在我的处理程序类中使用了await,在我的存储库类中使用了另一个等待,我不确定这是一个好的做法还是性能影响。

1 个答案:

答案 0 :(得分:2)

这是一种可以使用async/await的正确方法。

如果您不需要捕获上下文,也可以考虑在每个等待Task上调用.ConfigureAwait(false);