Как присвоить переменным результаты задач WaitAllC#

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

Сообщение Anonymous »

У меня такая ситуация:

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

var retrievalTasks = new Task[2];

retrievalTasks[0] = GetNodesAsync();

retrievalTasks[1] = GetAssetsToHandleAsync();

Task.WaitAll(retrievalTasks);
И мне бы хотелось, чтобы результат retrivalTasks[0] и retrivalTasks[1] сохранялся в переменных.
Я мог бы добиться этого с помощью:

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

 var a = await GetNodesAsync();
var b = await GetAssetsToHandleAsync();;
Но я бы предпочел не ждать того и другого, потому что тогда их не уволят одновременно, верно? Или я ошибаюсь?

Я видел это как ссылку: Ожидание нескольких задач с разными результатами

Но я думаю, что это немного другой сценарий, который в моем случае не сработает.

Есть идеи?

Спасибо

РЕДАКТИРОВАТЬ:

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

await Task.WhenAll(catTask, houseTask, carTask);

var cat = await catTask;

var house = await houseTask;

var car = await carTask;
Кажется, что для получения трех результатов пришлось ждать четыре раза. Однако @armenm показал, как этого избежать.

Подробнее здесь: https://stackoverflow.com/questions/507 ... -variables

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