Udostępnij za pośrednictwem


TaskScheduler.UnobservedTaskException Zdarzenie

Definicja

Występuje, gdy nieobserwowany wyjątek zadania, którego dotyczy błąd, zostanie wyzwolony zasady eskalacji wyjątków, które domyślnie zakończą proces.

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) 

Typ zdarzenia

Atrybuty

Uwagi

To zdarzenie zapewnia mechanizm zapobiegania wyzwalaniu zasad eskalacji wyjątków (które domyślnie przerywa proces).

Aby ułatwić deweloperom pisanie kodu asynchronicznego na podstawie zadań, nieobserwowane wyjątki zgłaszają UnobservedTaskException wyjątek, ale proces nie kończy się domyślnie. Zamiast tego wyjątek jest obsługiwany przez środowisko uruchomieniowe po wystąpieniu zdarzenia, niezależnie od tego, czy program obsługi zdarzeń obserwuje wyjątek. To zachowanie można skonfigurować. Zamiast tego możesz użyć <ThrowUnobservedTaskExceptions> elementu konfiguracji, aby zakończyć proces:

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

Dotyczy

Zobacz też