Partilhar via


Aviso CA2247: Argumento para o construtor TaskCompletionSource deve ser um valor TaskCreationOptions

A regra CA2247 do analisador de código .NET está habilitada, por padrão, a partir do .NET 5. Ele gera um aviso de compilação para as chamadas ao construtor TaskCompletionSource<TResult> que passam um argumento do tipo TaskContinuationOptions.

Alterar descrição

A partir do .NET 5, o SDK do .NET inclui analisadores de código-fonte do .NET. Várias dessas regras estão habilitadas, por padrão, incluindo CA2247. Se o seu projeto contém código que viola essa regra e está configurado para tratar avisos como erros, essa alteração pode quebrar sua compilação.

A regra CA2247 localiza chamadas para o TaskCompletionSource<TResult> construtor que passam um argumento do tipo TaskContinuationOptions. O TaskCompletionSource<TResult> tipo tem um construtor que aceita um TaskCreationOptions valor e outro construtor que aceita um Object. Se acidentalmente passar um valor TaskContinuationOptions em vez de um valor TaskCreationOptions, o construtor com o parâmetro Object é chamado em tempo de execução. Seu código será compilado e executado, mas não terá o comportamento pretendido.

Versão introduzida

5.0

  • Substitua o TaskContinuationOptions argumento pelo valor correspondente TaskCreationOptions . Não suprima este aviso, pois ele quase sempre destaca um bug no seu código. Para obter mais informações, consulte CA2247.

  • Para desativar completamente a análise de código, defina EnableNETAnalyzers como false no arquivo de projeto. Para obter mais informações, consulte EnableNETAnalyzers.

APIs afetadas