У меня такая ситуация:
var retrievalTasks = new Task[2];
retrievalTasks[0] = GetNodesAsync();
retrievalTasks[1] = GetAssetsToHandleAsync();
Task.WaitAll(retrievalTasks);
И я хотел бы, чтобы результаты retrievalTasks[0]
и retrievalTasks[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 показал, как этого избежать.