Bei der Arbeit mit Task
In C# 5.0 und höher werden die Schlüsselwörter „async“ und „await“ vereinfacht die aufgabenbasierte Programmierung erheblich. Anstatt sich auf ContinueWith zu verlassen, können Sie mit asynchronen Methoden Try/Catch-Blöcke direkt verwenden, um Ausnahmen zu behandeln:
try { // Start the task. var task = Task.Factory.StartNew<StateObject>(() => { /* action */ }); // Await the task. await task; } catch (Exception e) { // Perform cleanup here. }
Für ältere Versionen von C# Die ContinueWith-Überladung mit der TaskContinuationOptions-Enumeration kann sein verwendet:
// Get the task. var task = Task.Factory.StartNew<StateObject>(() => { /* action */ }); // For error handling. task.ContinueWith(t => { /* error handling */ }, context, TaskContinuationOptions.OnlyOnFaulted);
OnlyOnFaulted stellt sicher, dass die Fortsetzung nur ausgeführt wird, wenn die Vorgängeraufgabe eine Ausnahme auslöst. Mehrere Fortsetzungen können verkettet werden, um unterschiedliche Fälle zu behandeln:
// For error handling. task.ContinueWith(t => { /* error handling */ }, context, TaskContinuationOptions.OnlyOnFaulted); // If it succeeded. task.ContinueWith(t => { /* on success */ }, context, TaskContinuationOptions.OnlyOnRanToCompletion);
Ganz gleich, ob Sie den Async/Await-Ansatz oder die ContinueWith mit TaskContinuationOptions-Technik wählen, diese Methoden ermöglichen es Ihnen, Ausnahmen in C#-Aufgaben effektiv abzufangen und sicherzustellen, dass Ihre Anwendungen damit umgehen unerwartete Fehler elegant.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit Ausnahmen in C#-Aufgaben um (Async/Await und ContinueWith)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!