In WPF-Anwendungen sollten Aufgaben, die den UI-Thread blockieren können, im Hintergrund ausgeführt werden. Berücksichtigen Sie bei der Auswahl eines geeigneten Ansatzes Faktoren wie Thread-Blockierung, Fortschrittsberichte, Abbruch und Multithreading-Unterstützung.
Mit .NET 4.5 oder höher (bzw .NET 4.0 mit Microsoft.Bcl.Async) bietet die aufgabenbasierte API mit async/await die optimale Lösung für die Hintergrundausführung. Es ermöglicht eine bequeme und strukturierte Codierungserfahrung.
Der folgende Code zeigt ein Beispiel für die Verwendung von async/await zum Ausführen einer Aufgabe im Hintergrund:
private async void Start(object sender, RoutedEventArgs e) { try { await Task.Run(() => { int progress = 0; for (; ; ) { Thread.Sleep(1); progress++; Logger.Info(progress); } }); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
Dieser Code erstellt eine Aufgabe, die im Hintergrund ausgeführt wird und eine Fortschrittsmeldung über die Fortschrittsvariable und einen Abbruch über die CancellationTokenSource (nicht angezeigt) ermöglicht.
Weitere Informationen und tiefergehendes Verständnis:
Das obige ist der detaillierte Inhalt vonWie führe ich Hintergrundaufgaben in WPF mit Fortschrittsberichten und Abbruch durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!