Kontrolle der Parallelität in Parallel.ForEach
Bei der parallelen Programmierung kann es von Vorteil sein, Schleifen parallel auszuführen, sodass mehrere Threads gleichzeitig unabhängige Aufgaben ausführen können. Bei begrenzten Ressourcen ist es jedoch wichtig, die Anzahl paralleler Aufgaben zu begrenzen, um eine Überlastung des Systems zu vermeiden. In diesem Artikel wird gezeigt, wie Sie die Parallelität in einer Parallel.ForEach-Schleife einschränken.
Stellen Sie sich eine Situation vor, in der eine Parallel.ForEach-Schleife eine Webseite herunterlädt. Um sicherzustellen, dass Ihre Bandbreite nicht überlastet wird, sollten Sie die Anzahl gleichzeitiger Downloads begrenzen. Herkömmliche Webcrawler-Lösungen reichen nicht aus, da Ihre Aufgaben möglicherweise unterschiedliche Arten von Vorgängen umfassen.
Parallelität begrenzen
Um die Anzahl der in einer Parallel.ForEach-Schleife verwendeten Threads zu steuern, können Sie den Parameter MaxDegreeOfParallelism der ParallelOptions-Klasse verwenden. Dieser Parameter gibt die maximale Anzahl von Threads an, die die Schleife parallel ausführen können.
<code class="language-csharp">Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { Download(webpage); } );</code>
In diesem Beispiel ist MaxDegreeOfParallelism auf 4 eingestellt, was bedeutet, dass bis zu vier Threads gleichzeitig zum Herunterladen der Webseite verwendet werden. Dadurch wird sichergestellt, dass Ihre Bandbreite die Grenzen nicht überschreitet und eine übermäßige Belastung der Ressourcen verhindert wird.
Weitere Ressourcen
Weitere Informationen zu Parallel.ForEach finden Sie in der MSDN-Dokumentation:
Durch die Steuerung des Parallelitätsgrads in einer Parallel.ForEach-Schleife können Sie die Ressourcennutzung effektiv verwalten und eine optimale Leistung für Ihre Anwendung sicherstellen.
Das obige ist der detaillierte Inhalt vonWie kann die Parallelität in Parallel.ForEach eingeschränkt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!