Avertissement CA2247 : l’argument du constructeur TaskCompletionSource doit être la valeur TaskCreationOptions

La règle d’analyseur de code .NET CA2247 est activée par défaut à partir de .NET 5. Elle génère un avertissement de build pour les appels au constructeur TaskCompletionSource<TResult> qui passent un argument de type TaskContinuationOptions.

Description de la modification

À compter de .NET 5, le SDK .NET inclut des analyseurs de code source .NET. Plusieurs de ces règles sont activées par défaut, y compris CA2247. Si votre projet contient du code qui enfreint cette règle et est configuré pour traiter les avertissements comme des erreurs, cette modification peut interrompre votre build.

La règle CA2247 recherche les appels au constructeur TaskCompletionSource<TResult> qui passent un argument de type TaskContinuationOptions. Le type TaskCompletionSource<TResult> a un constructeur qui accepte une valeur TaskCreationOptions, et un autre qui accepte un Object. Si vous transmettez accidentellement une valeur TaskContinuationOptions au lieu de TaskCreationOptions, le constructeur avec le paramètre Object est appelé au moment de l’exécution. Votre code sera compilé et exécuté, mais n’aura pas le comportement prévu.

Version introduite

5,0

  • Remplacez l’argument TaskContinuationOptions par la valeur TaskCreationOptions correspondante. Ne supprimez pas cet avertissement, car il met presque toujours en évidence un bogue dans votre code. Pour plus d’informations, consultez CA2247.

  • Pour désactiver complètement l’analyse du code, définissez EnableNETAnalyzers sur false dans votre fichier projet. Pour plus d’informations, consultez EnableNETAnalyzers.

API affectées