CA2250: Menggunakan ThrowIfCancellationRequested
Properti | Nilai |
---|---|
ID Aturan | CA2250 |
Judul | Menggunakan ThrowIfCancellationRequested |
Golongan | Penggunaan |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Penyebab
Aturan ini menandai pernyataan bersyarat yang memeriksa IsCancellationRequested sebelum melemparkan OperationCanceledException.
Deskripsi aturan
Anda dapat mencapai hal yang sama dengan memanggil CancellationToken.ThrowIfCancellationRequested().
Cara memperbaiki pelanggaran
Untuk memperbaiki pelanggaran, ganti pernyataan bersyarkat dengan panggilan ke 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
Kapan harus menekan peringatan
Anda dapat menyembunyikan peringatan dari aturan ini.
Menyembunyikan peringatan
Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan arahan praprosedur ke file sumber Anda untuk dinonaktifkan lalu aktifkan kembali aturannya.
#pragma warning disable CA2250
// The code that's violating the rule is on this line.
#pragma warning restore CA2250
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA2250.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.