Freigeben über


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

Attribute

Hinweise

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

Um es Entwicklern zu erleichtern, asynchronen Code basierend auf Aufgaben zu schreiben, lösen nicht beobachtete Ausnahmen die UnobservedTaskException Ausnahme aus, aber der Prozess wird nicht standardmäßig beendet. Stattdessen wird die Ausnahme von der Runtime behandelt, nachdem das Ereignis ausgelöst wurde, unabhängig davon, ob ein Ereignishandler die Ausnahme beobachtet. Dieses Verhalten kann konfiguriert werden. Sie können stattdessen das <ThrowUnobservedTaskExceptions> Konfigurationselement verwenden, um den Prozess zu beenden:

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

Gilt für:

Weitere Informationen