Führen Sie asynchrone Aufgaben parallel aus und sammeln Sie Ergebnisse in .NET 4.5
Einleitung:
Das gleichzeitige Ausführen lang laufender Aufgaben und das Sammeln ihrer Ergebnisse ist eine häufige Anforderung in .NET-Anwendungen. In .NET 4.5 hat sich mit der Einführung der asynchronen Programmierung der traditionelle Thread-basierte Ansatz weiterentwickelt. In diesem Artikel werden die besten Möglichkeiten zur Implementierung der parallelen Ausführung asynchroner Aufgaben in .NET 4.5 untersucht.
Originalcode:
Der bereitgestellte Code demonstriert den grundlegenden Ansatz, Task.Run() zu verwenden, um zwei lang laufende Aufgaben zu starten und dann Result zu verwenden, um ihre Ergebnisse abzurufen. Allerdings weist diese Methode einige Einschränkungen auf:
Ungültiger Code:
Ein Versuch, eine nicht laufende Aufgabe zu erstellen
Beste Lösung:
Die beste Lösung besteht darin, eine asynchrone Version einer Aufgabe mit langer Laufzeit zu verwenden und die Methode Task.WhenAll() zu nutzen. Ein Beispiel ist wie folgt:
<code class="language-csharp">async Task<int> LongTask1() { // ...长时间运行的任务1... return 0; } async Task<int> LongTask2() { // ...长时间运行的任务2... return 1; } // ... { Task<int> t1 = LongTask1(); Task<int> t2 = LongTask2(); await Task.WhenAll(t1,t2); //现在我们可以访问t1.Result和t2.Result }</code>
Dieser Code erstellt asynchrone Aufgaben für LongTask1 und LongTask2 und wartet dann mit Task.WhenAll() darauf, dass sie abgeschlossen werden. Dadurch können Aufgaben gleichzeitig ausgeführt werden, ohne dass sie blockiert werden. Schließlich kann über t1.Result und t2.Result auf die Ergebnisse zugegriffen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich parallele asynchrone Aufgaben in .NET 4.5 effizient ausführen und Ergebnisse sammeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!