Aviso CA2247: o argumento para o construtor TaskCompletionSource deve ser o valor TaskCreationOptions
A regra do analisador de código CA2247 está habilitada por padrão a partir do .NET 5. Ela produz um aviso de build para chamadas ao construtor TaskCompletionSource<TResult> que passa um argumento do tipo TaskContinuationOptions.
Descrição das alterações
Do .NET 5 em diante, o SDK do .NET inclui Analisadores de código-fonte do .NET. Várias dessas regras estão habilitadas por padrão, incluindo a CA2247. Se o projeto contiver um código que viole essa regra e estiver configurado para tratar avisos como erros, essa alteração poderá interromper o build.
A regra CA2247 encontra chamadas para o construtor TaskCompletionSource<TResult> que passa um argumento do tipo TaskContinuationOptions. O tipo TaskCompletionSource<TResult> tem um construtor que aceita um valor TaskCreationOptions e outro construtor que aceita um Object. Se você passar acidentalmente um valor TaskContinuationOptions em vez de um valor TaskCreationOptions, o construtor com o parâmetroObject será chamado em tempo de execução. O código compilará e executará, mas não terá o comportamento pretendido.
Versão introduzida
5,0
Ação recomendada
Substitua o argumento TaskContinuationOptions pelo valor correspondente TaskCreationOptions. Não suprima esse aviso, pois quase sempre ele destaca um bug no código. Para obter mais informações, consulte CA2247.
Para desabilitar completamente a análise de código, defina
EnableNETAnalyzers
comofalse
no arquivo de projeto. Para obter mais informações, confira EnableNETAnalyzers.