137 votes

Comment je peux attendre jusqu'à la Parallèle.ForEach complète

Je suis l'aide de TPL dans mon projet actuel, et en utilisant en Parallèle.Foreach pour tourner de nombreux fils. La Tâche de la classe contient Wait() attendre jusqu'à ce que la tâche est terminée. Comme ça, comment je peux attendre pour le Parallèle.ForEach pour terminer et ensuite aller dans l'exécution de la prochaine déclaration?

212voto

Henk Holterman Points 153608

Vous n'avez pas à faire quelque chose de spécial, Parallel.Foreach() va attendre jusqu'à ce que son ramifiée les tâches sont terminées. Vous pouvez le traiter comme un état unique, et par exemple de l'enrouler à l'intérieur d'un try/catch.

Maintenant, si vous vous lancez des Tâches distinctes de l'intérieur de la boucle ForEach, puis il devient une autre situation. Mais vous ne devriez probablement pas le cas.

18voto

Baboon Points 8283

Vous n'avez pas besoin que avec en Parallèle.Foreach: elle n'exécute la boucle foreach autant de threads qu'il y a de processeurs disponibles, mais il renvoie de manière synchrone.

Plus d'informations peuvent être trouvées ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X