TaskScheduler.UnobservedTaskException Ereignis

Definition

Tritt auf, kurz bevor eine nicht überwachte Ausnahme eines Tasks, bei dem ein Fehler aufgetreten ist, eine Ausnahmeausweitungsrichtlinie auslöst, was standardmäßig den Prozess beenden würde.

public:
 static event EventHandler<System::Threading::Tasks::UnobservedTaskExceptionEventArgs ^> ^ UnobservedTaskException;
public static event EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> UnobservedTaskException;
public static event EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs>? UnobservedTaskException;
[add: System.Security.SecurityCritical]
[remove: System.Security.SecurityCritical]
public static event EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> UnobservedTaskException;
member this.UnobservedTaskException : EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> 
[<add: System.Security.SecurityCritical>]
[<remove: System.Security.SecurityCritical>]
member this.UnobservedTaskException : EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> 
Public Shared Custom Event UnobservedTaskException As EventHandler(Of UnobservedTaskExceptionEventArgs) 

Ereignistyp

EventHandler<UnobservedTaskExceptionEventArgs>
Attribute

Hinweise

Dieses anwendungsdomänenweite Ereignis bietet einen Mechanismus, um zu verhindern, dass eine Ausnahmeausweitungsrichtlinie (die standardmäßig den Prozess beendet) ausgelöst wird.

Um Entwicklern das Schreiben von asynchronem Code basierend auf Aufgaben zu erleichtern, ändert .NET Framework 4.5 das Standardausnahmeverhalten für nicht beobachtete Ausnahmen. Obwohl nicht beobachtete Ausnahmen weiterhin die Ausnahme auslösen, wird UnobservedTaskException der Prozess nicht standardmäßig beendet. Stattdessen wird die Ausnahme von der Laufzeit behandelt, nachdem das Ereignis ausgelöst wurde, unabhängig davon, ob ein Ereignishandler die Ausnahme beobachtet. Dieses Verhalten kann konfiguriert werden. Ab .NET Framework 4.5 können Sie das Konfigurationselement verwenden, um das Verhalten von .NET Framework 4 wies und den Prozess <ThrowUnobservedTaskExceptions> zu beenden:

<configuration>   
   <runtime>   
      <ThrowUnobservedTaskExceptions enabled="true"/>   
   </runtime>   
</configuration>  

Gilt für

Siehe auch