Heim >Backend-Entwicklung >C++ >Async/Awesait vs. Hintergrundworker: Wann sollte ich welche für langlebige Aufgaben in .NET verwenden?
.NET 4.5 und C# 5 Framework haben moderne Async eingeführt/wartet den asynchronen Programmiermodus. Beide werden verwendet, um langfristige Betriebsaufgaben zu erledigen, aber es ist wesentlich, ihre jeweiligen Rollen und anwendbaren Szenen zu verstehen.
asynchron/wartet
asynchron/wartet ein asynchroner Syntaxzucker, mit dem Entwickler asynchrones Verhalten synchron ausdrücken können, wodurch die Lesbarkeit und Wartung des Codes vereinfacht wird. Async/Awed -Funktion kann ausgeführt werden, ohne den UI -Thread zu blockieren, um die Antwortfähigkeit der Benutzeroberfläche während eines langfristigen Aufgabenzeitraums beizubehalten.
Zum Beispiel eine Netzwerkanforderung:
<code class="language-csharp">using (WebResponse response = await webReq.GetResponseAsync()) { using (Stream responseStream = response.GetResponseStream()) { int bytesRead = await responseStream.ReadAsync(buffer, 0, buffer.Length); } }</code>
Hintergrundworkerkomponente wird verwendet, um die Aufgabe des Ausführens des CEO im Thread -Pool -Thread auszuführen, um die Antwortfähigkeit der Benutzeroberfläche zu gewährleisten. Es enthält Zeitplanberichte und Abschlussfunktionen, sodass Entwickler die Benutzeroberfläche während des Aufgabenausführungsprozesses aktualisieren können. Obwohl die Erstellung und Ausführung von Threads mit dem Hintergrundarbeitspersonal verwalteten Threads eingeführt wurde, führte sie im Vergleich zu der einfacheren Syntax von Async/Await eine zusätzliche Komplexität ein.
Gemeinsame Anwendungsszenarien
asynchrones E/A -Betrieb
Webdienst Anruf
programmieren des EreignissesDie Aufgabe des Fortschrittsberichts Die Szene der manuellen Management -Threads
Einfache und einfache Grammatik Behalten Sie die UI -Antwortfähigkeit
beivereinfachte Ereignisverarbeitung
Hintergrundarbeiter:unterstützen Wählen Sie das richtige Werkzeug
Das obige ist der detaillierte Inhalt vonAsync/Awesait vs. Hintergrundworker: Wann sollte ich welche für langlebige Aufgaben in .NET verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!