SYSLIB0059: SystemEvents.EventsThreadShutdown callbacks worden niet uitgevoerd voordat het proces wordt afgesloten
De SystemEvents.EventsThreadShutdown gebeurtenis is verouderd, vanaf .NET 10. Als u naar deze gebeurtenis in code verwijst, wordt er een waarschuwing gegenereerd SYSLIB0059
tijdens het compileren.
Reden voor afschaffing
De eerdere afhandeling van afsluiten in SystemEvents kon de finalizer-thread blokkeren tijdens het afsluiten van de app. Om te voorkomen dat de finalizerthread wordt geblokkeerd, heeft SystemEvents geen afsluitafhandeling meer, wat betekent dat de SystemEvents.EventsThreadShutdown gebeurtenis niet meer wordt aangeroepen. Om deze gedragswijziging aan te geven, is de gebeurtenis gemarkeerd als verouderd.
Tijdelijke oplossing
Gebruik in plaats daarvan AppDomain.ProcessExit.
Een waarschuwing onderdrukken
Als u de verouderde API moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.
// Disable the warning.
#pragma warning disable SYSLIB0059
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0059
Als u alle SYSLIB0059
waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn>
eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0059</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukkenvoor meer informatie.