Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Następujące interfejsy API są oznaczone jako przestarzałe, począwszy od platformy .NET 5. Użycie tych interfejsów API generuje ostrzeżenie SYSLIB0006 w czasie kompilacji i PlatformNotSupportedException w czasie wykonywania.
W przypadku wywołania Thread.Abort w celu przerwania działania wątku innego niż bieżący, nie można ustalić, jaki kod został wykonany lub niepowodzenie w wykonaniu, gdy zostanie wyrzucony ThreadAbortException. Nie można również mieć pewności co do stanu swojej aplikacji ani stanu aplikacji i użytkownika, za którego zachowanie jest odpowiedzialna aplikacja. Na przykład wywołanie Thread.Abort może uniemożliwić wykonanie konstruktorów statycznych lub zwolnienie zarządzanych albo niezarządzanych zasobów. Z tego powodu Thread.Abort zawsze zgłasza wartość w programach PlatformNotSupportedException .NET Core i .NET 5+.
Rozwiązania alternatywne
Użyj CancellationToken aby przerwać przetwarzanie jednostki pracy zamiast wywoływania Thread.Abort. W poniższym przykładzie pokazano użycie metody 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);
}
}
Pomijanie ostrzeżenia
Jeśli musisz używać przestarzałych interfejsów API, możesz pominąć ostrzeżenie w kodzie lub w pliku projektu.
Aby pominąć tylko jedno naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć ostrzeżenie.
// Disable the warning.
#pragma warning disable SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Aby pominąć wszystkie ostrzeżenia SYSLIB0006 w projekcie, dodaj właściwość <NoWarn> do pliku projektu.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Aby uzyskać więcej informacji, zobacz Pomijanie ostrzeżeń.