CA2250: Use ThrowIfCancellationRequested
Propiedad | Value |
---|---|
Identificador de la regla | CA2250 |
Título | Use ThrowIfCancellationRequested |
Categoría | Uso |
La corrección es problemática o no problemática | Poco problemático |
Habilitado de forma predeterminada en .NET 9 | Como sugerencia |
Causa
Esta regla marca instrucciones condicionales que comprueban IsCancellationRequested antes de iniciar OperationCanceledException.
Descripción de la regla
Puede lograr lo mismo si llama a CancellationToken.ThrowIfCancellationRequested().
Cómo corregir infracciones
Para corregir infracciones, reemplace la instrucción condicional por una llamada a 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
Cuándo suprimir las advertencias
Es seguro suprimir advertencias de esta regla.
Supresión de una advertencia
Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.
#pragma warning disable CA2250
// The code that's violating the rule is on this line.
#pragma warning restore CA2250
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.CA2250.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.