SYSLIB0059: I callback di SystemEvents.EventsThreadShutdown non vengono eseguiti prima che il processo termini.
L'evento SystemEvents.EventsThreadShutdown è obsoleto, a partire da .NET 10. Facendo riferimento a questo evento nel codice viene generato un avviso SYSLIB0059
in fase di compilazione.
Motivo dell'obsoletione
La gestione precedente dell'arresto in SystemEvents potrebbe bloccare il thread del finalizzatore durante l'arresto dell'applicazione. Per evitare di bloccare il thread del finalizzatore, SystemEvents non ha più la gestione dell'arresto, il che significa che l'evento SystemEvents.EventsThreadShutdown non viene più chiamato. Per visualizzare questa modifica del comportamento, l'evento è stato contrassegnato come obsoleto.
Soluzione alternativa
Usa invece AppDomain.ProcessExit.
Eliminare un avviso
Se è necessario usare l'API obsoleta, è possibile eliminare l'avviso nel codice o nel file di progetto.
Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.
// Disable the warning.
#pragma warning disable SYSLIB0059
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0059
Per eliminare tutti gli avvisi di SYSLIB0059
nel progetto, aggiungere una proprietà <NoWarn>
al file di progetto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0059</NoWarn>
</PropertyGroup>
</Project>
Per ulteriori informazioni, vedere Sopprimere gli avvisi.