Hintergrundaufgaben in WPF-Anwendungen ausführen
In WPF-Anwendungen ist es oft notwendig, Aufgaben im Hintergrund auszuführen, um ein Einfrieren der Benutzeroberfläche zu vermeiden ( Benutzeroberfläche). Dazu benötigen Entwickler einen Mechanismus, der die folgenden Kriterien erfüllt:
Empfohlener Ansatz: Aufgabenbasierte API und Async/Await
Mit der Veröffentlichung von .NET 4.5 (oder .NET 4.0 mit der Microsoft.Bcl.Async-Bibliothek) besteht der empfohlene Ansatz für Hintergrundaufgaben darin, die aufgabenbasierte API und Async zu verwenden /erwarten. Diese Technik bietet die folgenden Vorteile:
Beispielimplementierung
Der folgende Code zeigt, wie eine Hintergrundaufgabe mithilfe der aufgabenbasierten API und async/await ausgeführt wird:
private async void Start(object sender, RoutedEventArgs e) { try { await Task.Run(() => { int progress = 0; for (; ; ) { System.Threading.Thread.Sleep(1); progress++; Logger.Info(progress); } }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Dieser Code erzeugt parallel zum UI-Thread eine neue Aufgabe, sodass die Benutzeroberfläche weiterhin reagiert, während die Hintergrundaufgabe ausgeführt wird. Es umfasst auch die Ausnahmebehandlung, um eine Fehlermeldung anzuzeigen, wenn während der Aufgabenausführung eine Ausnahme auftritt.
Zusätzliche Ressourcen
Weitere Informationen zum Ausführen von Hintergrundaufgaben in WPF mit Fortschrittsberichten und Stornierungsunterstützung beachten Sie die folgenden Referenzen:
Das obige ist der detaillierte Inhalt vonWie führe ich Hintergrundaufgaben in WPF-Anwendungen aus, ohne die Benutzeroberfläche einzufrieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!