Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Следующие 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>
Дополнительные сведения см. в разделе Подавление предупреждений.