Heim >Backend-Entwicklung >C++ >Wie kann ich viele Aufgaben nacheinander mit einer begrenzten Anzahl gleichzeitiger Aufgaben in .NET ausführen?
Eine Reihe von Aufgaben nacheinander mit Aufgabenlimits ausführen
Angenommen, Sie haben ein Szenario, in dem Sie eine große Anzahl von Aufgaben ausführen müssen (z. B. , 100), aber Sie möchten die Anzahl der gleichzeitig ausgeführten Aufgaben beschränken (z. B. 10). Dieses Problem kann mithilfe der in .NET Framework 4.0 eingeführten Klasse „Task“ effizient gelöst werden.
Im gegebenen Szenario können wir die Klasse „SemaphoreSlim“ verwenden, um die maximale Anzahl gleichzeitig ausgeführter Aufgaben zu steuern. Mit „SemaphoreSlim“ können Sie ein Semaphorobjekt erstellen, das die Anzahl gleichzeitiger Vorgänge begrenzen kann.
Hier ist eine Beispielimplementierung, die zeigt, wie Sie Ihr gewünschtes Verhalten erreichen:
using System.Threading.Tasks; using System.Threading; class Program { static void Main() { // Create a SemaphoreSlim object to limit the number of concurrent tasks to 10 SemaphoreSlim maxThread = new SemaphoreSlim(10); // Create 115 tasks with each task performing a specific action for (int i = 0; i < 115; i++) { // Acquire a permit from the SemaphoreSlim object, blocking if the limit is reached maxThread.Wait(); // Schedule a new task Task.Factory.StartNew(() => { // Perform your desired task here }, TaskCreationOptions.LongRunning) // Once the task is complete, release the permit back to the SemaphoreSlim object .ContinueWith((task) => maxThread.Release()); } } }
In dieser Implementierung Jede Aufgabe erhält eine Genehmigung vom Objekt „SemaphoreSlim“, bevor sie ausgeführt werden kann. Wenn die maximale Anzahl an Genehmigungen (in diesem Fall 10) erworben wurde, blockiert das Semaphor den Erwerb von Genehmigungen durch nachfolgende Aufgaben, bis eine Genehmigung freigegeben wird.
Mit diesem Ansatz können Sie eine Reihe von Aufgaben nacheinander ausführen. Sicherstellen, dass nur eine vordefinierte Anzahl von Aufgaben gleichzeitig ausgeführt wird. Sobald alle Aufgaben abgeschlossen sind, wird die Methode „Main“ beendet und zeigt damit das Ende des Programms an.
Das obige ist der detaillierte Inhalt vonWie kann ich viele Aufgaben nacheinander mit einer begrenzten Anzahl gleichzeitiger Aufgaben in .NET ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!