So behandeln Sie Ausnahmen, die in separaten Threads ausgelöst werden
In Multithread-Anwendungen ist es wichtig, Ausnahmen zu behandeln, die in anderen Threads als auftreten derjenige, der den Hauptcode ausführt. Diese Herausforderung erfordert eine sorgfältige Handhabung, um eine ordnungsgemäße Fehlerbehandlung und Anwendungsstabilität sicherzustellen.
Mit Task
Seit .NET 4 ist die Aufgabe
task.ContinueWith(ExceptionHandler, TaskContinuationOptions.OnlyOnFaulted); private void ExceptionHandler(Task<int> task) { var exception = task.Exception; Console.WriteLine(exception); }
try { task.Wait(); } catch (AggregateException ex) { Console.WriteLine(ex); }
Verwenden von Threads in .NET 3.5
In .NET 3.5, wo Task< T> nicht verfügbar ist, können Sie Ausnahmen von Threads mit den folgenden Ansätzen behandeln:
Exception exception = null; Thread thread = new Thread(() => SafeExecute(() => Test(0, 0), Handler)); thread.Start(); private void Handler(Exception exception) { Console.WriteLine(exception); }
Exception exception = null; Thread thread = new Thread(() => SafeExecute(() => Test(0, 0), out exception)); thread.Start(); ... Console.WriteLine(exception);
Durch die Implementierung dieser Techniken können Sie Ausnahmen, die in verschiedenen Threads ausgelöst werden, effektiv behandeln und so sicherstellen, dass Ihre Anwendung auch bei Anwesenheit weiterhin zuverlässig funktioniert von unerwarteten Fehlern.
Das obige ist der detaillierte Inhalt vonWie behandelt man Ausnahmen von separaten Threads in .NET effektiv?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!