Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As seguintes APIs estão marcadas como obsoletas, começando em .NET 5. A utilização destas APIs gera avisos SYSLIB0006 em tempo de compilação e em PlatformNotSupportedException tempo de execução.
Quando chamas Thread.Abort para abortar uma thread diferente da thread atual, não sabes que código foi executado ou falhou quando é ThreadAbortException lançado. Também não pode ter a certeza do estado da sua aplicação ou de qualquer estado da aplicação e do utilizador que ela seja responsável por preservar. Por exemplo, a chamada Thread.Abort pode impedir a execução de construtores estáticos ou a libertação de recursos geridos ou não geridos. Por esta razão, Thread.Abort lança sempre uma PlatformNotSupportedException no .NET Core e .NET 5+.
Soluções
Use a CancellationToken para abortar o processamento de uma unidade de trabalho em vez de chamar Thread.Abort. O exemplo seguinte ilustra o uso de 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);
}
}
Suprimir um aviso
Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e reativar o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Para suprimir todos os avisos de SYSLIB0006 em seu projeto, adicione uma propriedade <NoWarn> ao seu arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, consulte Suprimir avisos.