Когда прекратить использовать ожиданиеC#

Место общения программистов C#
Anonymous
Когда прекратить использовать ожидание

Сообщение Anonymous »

Если каждый асинхронный метод мне нужно вернуть задачу и использовать await. Затем я передаю ожидание вызывающему абоненту, тогда все вызывающие методы должны быть асинхронными и использовать ожидание?
Итак, если у меня есть метод:

Код: Выделить всё

async Task GetNumberAsync()
{
return await GettingNumberFromHttpClient();
}
Тогда, поскольку он возвращает Task, мне нужно использовать await, чтобы использовать его? Тогда метод вызывающего абонента также должен будет вернуть Task с ожиданием, а затем все методы в моем коде будут иметь ожидание, чего мне не хватает?
тогда мне понадобится другой метод, например:

Код: Выделить всё

async Task AnotherMethodAsync()
{
var number = await GetNumberAsync();
var result = number + 5;
}
тогда, если мне придется сейчас вызвать AnotherMethodAsync, мне придется снова использовать await, и тогда цикл никогда не закончится вызовом await и async...
Было бы нормально, чтобы AnotherMethod выглядел так:

Код: Выделить всё

async void AnotherMethod()
{
var number = await GetNumberAsync();
var result = number + 5;
}
Теперь у AnotherMethod есть асинхронный метод ожидания, но он возвращает void, тем самым завершая цикл вызовов асинхронного ожидания? Везде, где я читаю об этом, говорят, что вы должны вернуть Task, а использование void по существу не рекомендуется, поскольку ваш код может не работать с try/catch и т. д....

Вернуться в «C#»