Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden APIs sind veraltet, beginnend mit .NET 5. Die Verwendung dieser APIs generiert warnungen SYSLIB0006 zur Kompilierungszeit und zur PlatformNotSupportedException Laufzeit.
Wenn Sie Thread.Abort aufrufen, um einen anderen Thread als den aktuellen abzubrechen, wissen Sie nicht, welcher Code ausgeführt oder nicht ausgeführt wurde, wenn ThreadAbortException ausgelöst wird. Sie können auch nicht sicher sein, in welchem Zustand sich Ihre Anwendung oder irgendein Anwendungs- und Benutzerzustand befindet, für dessen Erhaltung sie verantwortlich ist. Beispielsweise kann das Aufrufen Thread.Abort die Ausführung statischer Konstruktoren oder die Veröffentlichung von verwalteten oder nicht verwalteten Ressourcen verhindern. Aus diesem Grund löst Thread.Abort in .NET Core und .NET 5 und höher immer eine PlatformNotSupportedException aus.
Problemumgehungen
Verwenden Sie eine CancellationToken Zum Abbrechen der Verarbeitung einer Arbeitseinheit anstelle des Aufrufens Thread.Abort. Das folgende Beispiel veranschaulicht die Verwendung von 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);
}
}
Unterdrücken einer Warnung
Wenn Sie die veralteten APIs verwenden müssen, können Sie die Warnung im Code oder in der Projektdatei unterdrücken.
Um nur einen einzelnen Verstoß zu unterdrücken, fügen Sie Ihrer Quelldatei Präprozessordirektiven hinzu, um die Warnung zu deaktivieren und dann erneut zu aktivieren.
// Disable the warning.
#pragma warning disable SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Um alle SYSLIB0006 Warnungen in Ihrem Projekt zu unterdrücken, fügen Sie ihrer Projektdatei eine <NoWarn> Eigenschaft hinzu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Weitere Informationen finden Sie unter Unterdrücken von Warnungen.