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;
[add: System.Security.SecurityCritical]
[remove: System.Security.SecurityCritical]
public static event EventHandler<System.Threading.Tasks.UnobservedTaskExceptionEventArgs> UnobservedTaskException;

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

Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Zobacz też