Dela via


SYSLIB0059: SystemEvents.EventsThreadShutdown-återanrop körs inte innan processen avslutas

Händelsen SystemEvents.EventsThreadShutdown är föråldrad och startar i .NET 10. Om du refererar till den här händelsen i koden genereras en varning SYSLIB0059 vid kompileringstillfället.

Orsak till obsoletion

Den tidigare avstängningshanteringen i SystemEvents kunde blockera finalizertråden vid avstängning av appen. För att undvika att blockera finalizertråden har SystemEvents inte längre avstängningshantering, vilket innebär att SystemEvents.EventsThreadShutdown händelsen inte längre anropas. För att visa den här beteendeändringen har händelsen markerats som föråldrad.

Lösning

Använd AppDomain.ProcessExit i stället.

Ignorera en varning

Om du måste använda det föråldrade API:et kan du utelämna varningen i koden eller i projektfilen.

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.

// Disable the warning.
#pragma warning disable SYSLIB0059

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0059

Om du vill ignorera alla SYSLIB0059 varningar i projektet lägger du till en <NoWarn>-egenskap i projektfilen.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0059</NoWarn>
  </PropertyGroup>
</Project>

Mer information finns i Utelämna varningar.