Предположим, что у вас есть библиотека услуг с таким методом
public async Task<Person> GetPersonAsync(Guid id) {
return await GetFromDbAsync<Person>(id);
}
Следуя рекомендациям для SynchronizationContext, лучше использовать
public async Task<Person> GetPersonAsync(Guid id) {
return await GetFromDbAsync<Person>(id).ConfigureAwait(false);
}
Но когда у вас есть только одна операция (я думаю), лучше вернуть задачу непосредственно. См. В конце метода async я должен вернуться или ждать?
public Task<Person> GetPersonAsync(Guid id) {
return GetFromDbAsync<Person>(id);
}
В этом последнем случае вы не можете использовать ConfigureAwait (false), потому что этот метод не ожидается.
Какое наилучшее решение (и почему)?