Attendre pour la liste des tâches
Je suis en train de faire quelque chose comme ceci:
foreach (var o in ObjectList)
{
CalculateIfNeedToMakeTaskForO(o);
if (yes)
TaskList.Add(OTaskAsync());
}
Maintenant, je voudrais attendre pour l'ensemble de ces tâches à effectuer.
En plus de faire les
foreach(var o in ObjectList)
{
Result.Add("result for O is: "+await OTaskAsync());
}
Est-ce que je pourrais faire? (de meilleure qualité, plus élégant, plus "correct")
source d'informationauteur ctlaltdefeat
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour
Tâche.WaitAll
(en supposant que votreTaskList
mis en œuvreIEnumerable<Task>
)Edit: Depuis
WaitAll
seulement prend un tableau de la tâche (ou une liste deTask
sous la forme d'une variable tableau d'arguments), vous devez convertir votre Énumérable. Si vous voulez une méthode d'extension, vous pouvez faire quelque chose comme ceci:Mais c'est vraiment uniquement sucre syntaxique.
Vous êtes à la recherche pour
Task.WhenAll
: