CA2250 : utilisez ThrowIfCancellationRequested
Propriété | Value |
---|---|
Identificateur de la règle | CA2250 |
Titre | Utilisez ThrowIfCancellationRequested . |
Catégorie | Utilisation |
Le correctif est cassant ou non cassant | Sans rupture |
Activée par défaut dans .NET 9 | À titre de suggestion |
Cause
Cette règle signale les instructions conditionnelles qui vérifient IsCancellationRequested avant de lever OperationCanceledException.
Description de la règle
Vous pouvez accomplir la même chose en appelant CancellationToken.ThrowIfCancellationRequested().
Comment corriger les violations
Pour corriger les violations, remplacez l’instruction conditionnelle par un appel à ThrowIfCancellationRequested().
using System;
using System.Threading;
public void MySlowMethod(CancellationToken token)
{
// Violation
if (token.IsCancellationRequested)
throw new OperationCanceledException();
// Fix
token.ThrowIfCancellationRequested();
// Violation
if (token.IsCancellationRequested)
throw new OperationCanceledException();
else
DoSomethingElse();
// Fix
token.ThrowIfCancellationRequested();
DoSomethingElse();
}
Imports System
Imports System.Threading
Public Sub MySlowMethod(token As CancellationToken)
' Violation
If token.IsCancellationRequested Then
Throw New OperationCanceledException()
End If
' Fix
token.ThrowIfCancellationRequested()
' Violation
If token.IsCancellationRequested Then
Throw New OperationCanceledException()
Else
DoSomethingElse()
End If
' Fix
token.ThrowIfCancellationRequested()
DoSomethingElse()
End Sub
Quand supprimer les avertissements
Vous pouvez sans risque supprimer un avertissement de cette règle.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA2250
// The code that's violating the rule is on this line.
#pragma warning restore CA2250
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA2250.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.