Je suis un peu confus Parallel.ForEach
.
Qu'est- Parallel.ForEach
ce que c'est et que fait-il exactement?
Veuillez ne faire référence à aucun lien MSDN.
Voici un exemple simple:
string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);
foreach (string line in list_lines)
{
//My Stuff
}
Comment réécrire cet exemple avec Parallel.ForEach
?
c#
multithreading
.net-4.0
parallel.foreach
SilverLight
la source
la source
Parallel
classe et l'utilisation de PLINQ.foreach
. La différence est que la version parallèle peut effectuer plusieurs «actions» en même temps. Dans la plupart des cas (en fonction de l'ordinateur qui exécute le code, de son niveau d'occupation, et d'autres choses), ce sera plus rapide, et c'est l'avantage le plus important. Notez que lorsque vous le faites en parallèle, vous ne pouvez pas savoir dans quel ordre les articles sont traités. Avec un habituel (série)foreach
, vous avez la garantie quelines[0]
vient en premier, puislines[1]
, et ainsi de suite.Réponses:
la source
List<T>
;)Boucle Foreach:
Parallel.ForEach:
L'exemple suivant montre clairement la différence entre la boucle foreach traditionnelle et
Exemple Parallel.ForEach ()
Production
Utilisation de l'exemple Parallel.ForEach
la source
Cela entraînera l'analyse des lignes en parallèle, dans la boucle. Si vous voulez une introduction plus détaillée et moins "orientée référence" à la classe Parallel, j'ai écrit une série sur le TPL qui comprend une section sur Parallel.ForEach .
la source
Pour les gros fichiers, utilisez le code suivant (vous avez moins besoin de mémoire)
la source
Ces lignes ont fonctionné pour moi.
la source