Maison > développement back-end > C++ > Parallel.ForEach vs Foreach : quand devez-vous utiliser lequel ?

Parallel.ForEach vs Foreach : quand devez-vous utiliser lequel ?

Susan Sarandon
Libérer: 2025-01-03 15:04:40
original
428 Les gens l'ont consulté

Parallel.ForEach vs. Foreach: When Should You Use Which?

Comment Parallel.ForEach diffère de Foreach

Les boucles Foreach et Parallel.ForEach sont toutes deux utilisées pour parcourir les collections, mais elles fonctionnent de manière visible de différentes manières.

Foreach Boucle

  • Exécute les itérations de manière séquentielle, les unes après les autres.
  • Utilise un seul thread pour l'exécution.
  • Excelle dans la gestion de processus rapides avec un minimum surcharge.

Parallel.ForEach

  • Permet l'exécution parallèle d'itérations, en utilisant plusieurs threads.
  • Accélére les processus plus lents en tirant parti concurrence.
  • Introduit une surcharge de threading, ralentissant potentiellement l'exécution de quick processus.

Exemple de conversion

L'exemple fourni, qui lit les lignes d'un fichier et les parcourt à l'aide d'une boucle foreach, peut être réécrit avec Parallel. PourChacun comme suit :

string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);

Parallel.ForEach(list_lines, (line) =>
{
    // Insert your line-specific operations here
});
Copier après la connexion

Dans cette conversion :

  • Le La méthode Parallel.ForEach est utilisée pour répartir l'itération sur plusieurs threads.
  • La variable de ligne dans la fonction lambda représente chaque ligne de la collection.
  • Les opérations spécifiques qui doivent être effectuées sur chaque ligne sont maintenant enfermés dans la fonction lambda.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal