CA2261 : Ne pas utiliser ConfigureAwaitOptions.SuppressThrowing
avec Task<TResult>
Propriété | Value |
---|---|
Identificateur de la règle | CA2261 |
Titre | Ne pas utiliser ConfigureAwaitOptions.SuppressThrowing avec Task<TResult> |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Comme avertissement |
Cause
Une valeur de ConfigureAwaitOptions.SuppressThrowing est passée à Task<TResult>.ConfigureAwait(ConfigureAwaitOptions).
Description de la règle
L’option ConfigureAwaitOptions.SuppressThrowing n’est pas prise en charge par le Task<TResult> générique, car cela peut entraîner le renvoi d’un TResult
non valide. Cette règle signale l’utilisation de SuppressThrowing avec Task<TResult> pour exposer l’erreur au moment de la génération et non de l’exécution.
Comment corriger les violations
Castez Task<TResult> vers un Task non générique avant d’appeler ConfigureAwait(ConfigureAwaitOptions).
Exemple
L’extrait de code suivant montre une violation de CA2261 :
Task<int> t = new Task<int>(() => 1);
t.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
L’extrait de code suivant montre le correctif :
Task<int> t = new Task<int>(() => 1);
((Task)t).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
Quand supprimer les erreurs
Vous ne devez supprimer aucun avertissement de cette règle. Si la tâche est défectueuse ou annulée, TResult
n’est pas valide et provoque des erreurs d’exécution.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour