Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De volgende API's zijn gemarkeerd als verouderd, te beginnen in .NET 5. Het gebruik van deze API's genereert een waarschuwing SYSLIB0006 tijdens het compileren en een PlatformNotSupportedException tijdens runtime.
Wanneer u een andere thread dan de huidige thread aanroept Thread.Abort , weet u niet welke code is uitgevoerd of niet kan worden uitgevoerd wanneer de ThreadAbortException thread wordt gegenereerd. U kunt ook niet zeker zijn van de status van uw toepassing of van een toepassing en gebruikersstatus waarvoor het verantwoordelijk is te behouden. Het aanroepen van Thread.Abort kan bijvoorbeeld voorkomen dat statische constructors worden uitgevoerd of dat beheerde of onbeheerde bronnen worden vrijgegeven. Thread.Abort Daarom wordt er altijd een PlatformNotSupportedException op .NET Core en .NET 5+ gegooid.
Tijdelijke oplossingen
Gebruik een CancellationToken om de verwerking van een werkeenheid af te breken in plaats van aan te roepen Thread.Abort. In het volgende voorbeeld ziet u het gebruik van CancellationToken.
void ProcessPendingWorkItemsNew(CancellationToken cancellationToken)
{
if (QueryIsMoreWorkPending())
{
// If the CancellationToken is marked as "needs to cancel",
// this will throw the appropriate exception.
cancellationToken.ThrowIfCancellationRequested();
WorkItem work = DequeueWorkItem();
ProcessWorkItem(work);
}
}
Een waarschuwing onderdrukken
Als u de verouderde API's 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 SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Als u alle SYSLIB0006 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Zie Waarschuwingen onderdrukkenvoor meer informatie.