WPF Global abnormaler Verarbeitungsmechanismus
WPF -Anwendungen begegnen häufig einen unerwarteten Zusammenbruch, bringen den Benutzern Probleme und machen es den Entwicklern schwierig, Probleme zu untersuchen. Dieser Zusammenbruch hat normalerweise keine Fehler, und es ist schwierig, die Grundursache zu lokalisieren. Um dieses Problem zu lösen und einen globalen Try/Catch -Block zu erreichen, kann es den Benutzern sinnvolle Informationen liefern und verhindern, dass die Anwendung plötzlich beendet wird.
In WPF gibt es viele Möglichkeiten, globale Try/Catch -Blöcke zu erreichen, jeweils Vor- und Nachteile:
appdomain.currentdomain.unhandleDexception
Dieser Vorfall übernimmt die Abnormalität der Threads im Appdomain. Es ermöglicht zentralisierte Fehler, aber das Debuggen spezifischer Probleme kann schwieriger sein.
Dispatcher.unhandleyDexception
Dieses Ereignis übernimmt die Ausnahme eines einzelnen spezifischen Threads für das UI -Planungsprogramm. Es bietet eine feinere Kontrolle der körnigen Fehlerbehandlung, kann jedoch möglicherweise nicht die Anomalien des Hintergrundfadens erfassen.
application.current.dispatcherunhandleDexception
Dieses Ereignis übernimmt die Abnormalität des WPF -Anwendungs -Haupt -UI -Planungsprogramm -Threads. Es bietet eine bequeme Methode, um Fehler im Kern -UI -Thread zu behandeln, ist jedoch auf diesen speziellen Thread beschränkt.
TaskScheduler.unobservedTasException
Dieser Vorfall übernimmt die Ausnahme in AppDomain, bei der das Aufgabenplanungsprogramm für den asynchronen Betrieb verwendet wird. Es hilft, abnormale Hintergrundaufgaben zu erfassen, die möglicherweise ignoriert werden.
Wählen Sie aus, wo der globale Try/Catch -Block von den spezifischen Anforderungen der Anwendung abhängt. Wenn Sie sich mit zentralisierten Fehlern befassen müssen, ist Appdomain.currentDomain.unhandleDexception eine gute Wahl. Für eine bessere Steuerung können Sie Dispatcher.unhandleDexception oder application.current.DispatcherunhandLexception verwenden. Für die Abnormalität der Hintergrundaufgabe sollte der Taskscheduler.
Das obige ist der detaillierte Inhalt vonWie kann ich eine globale Ausnahmebehandlung in WPF implementieren, um unerwartete Abstürze zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!