web-dev-qa-db-fra.com

Comment puis-je attendre que le Parallel.ForEach se termine

J'utilise TPL dans mon projet actuel et j'utilise Parallel.Foreach pour faire tourner plusieurs threads. La classe Task contient Wait () pour attendre que la tâche soit terminée. Comme ça, comment puis-je attendre la fin de Parallel.ForEach et ensuite exécuter les prochaines instructions?

107
VJAI

Vous n'avez rien de spécial à faire, Parallel.Foreach() attendra que toutes ses tâches soient terminées. À partir du fil d'appel, vous pouvez la traiter comme une seule instruction synchrone et par exemple l'enrober dans un try/catch.

175
Henk Holterman

Vous n’avez pas besoin de cela avec Parallel.Foreach: il exécute le foreach dans autant de threads que de processeurs disponibles, mais il retourne de manière synchrone.

Plus d'informations peuvent être trouvées ici

15
Louis Kottmann