SYSLIB0006. Thread.Abort не поддерживается
Следующие API помечены как устаревшие, начиная с версии .NET 5. При использовании этих API создаются предупреждение SYSLIB0006
во время компиляции и исключение PlatformNotSupportedException во время выполнения.
При вызове Thread.Abort прерывания потока, отличного от текущего потока, вы не знаете, какой код выполнил или не удалось выполнить при ThreadAbortException возникновении. Вы также не можете быть уверены в состоянии приложения или любого приложения и пользовательского состояния, которое оно отвечает за сохранение. Например, вызов Thread.Abort может препятствовать выполнению статических конструкторов или выпуску управляемых или неуправляемых ресурсов. По этой причине Thread.Abort всегда создает исключение PlatformNotSupportedException для .NET Core и .NET 5+.
Методы обхода проблемы
Используйте CancellationToken, чтобы прервать обработку единицы работы вместо вызова Thread.Abort. В следующем примере демонстрируется применение 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);
}
}
Отключение предупреждений
Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.
Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.
// Disable the warning.
#pragma warning disable SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Чтобы отключить все SYSLIB0006
предупреждения в проекте, добавьте <NoWarn>
свойство в файл проекта.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Дополнительные сведения см. в разделе Отключение предупреждений.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по