CA1840: Gunakan Environment.CurrentManagedThreadId bukan Thread.CurrentThread.ManagedThreadId
Properti | Nilai |
---|---|
ID Aturan | CA1840 |
Judul | Gunakan Environment.CurrentManagedThreadId alih-alih Thread.CurrentThread.ManagedThreadId |
Golongan | Performa |
Perbaikan bersifat disruptif atau non-disruptif | Non-disruptif |
Diaktifkan secara default di .NET 9 | Sebagai saran |
Penyebab
Menggunakan Thread.CurrentThread.ManagedThreadId
untuk mendapatkan ID utas terkelola saat ini, bukan System.Environment.CurrentManagedThreadId.
Deskripsi aturan
System.Environment.CurrentManagedThreadId adalah penggantian pola Thread.CurrentThread.ManagedThreadId
yang ringkas dan efisien.
Cara memperbaiki pelanggaran
Pelanggaran dapat diperbaiki secara manual, atau, dalam beberapa kasus, menggunakan Tindakan Cepat untuk memperbaiki kode di Visual Studio.
Dua cuplikan kode berikut menunjukkan pelanggaran aturan dan cara memperbaikinya:
using System.Threading;
class MyClass
{
void MyMethod()
{
int id = Thread.CurrentThread.ManagedThreadId; // Violation occurs
}
}
Imports System.Threading
Class MyClass
Private Sub MyMethod()
Dim id As Integer = Thread.CurrentThread.ManagedThreadId ' Violation occurs.
End Function
End Class
using System.Threading;
class MyClass
{
void MyMethod()
{
int id = System.Environment.CurrentManagedThreadId; // Violation fixed
}
}
Imports System.Threading
Class MyClass
Private Sub MyMethod()
Dim id As Integer = System.Environment.CurrentManagedThreadId ' Violation fixed.
End Function
End Class
Tip
Perbaikan kode tersedia untuk aturan ini di Visual Studio. Untuk menggunakannya, posisikan kursor pada pelanggaran dan tekan Ctrl+. (titik). Pilih Gunakan 'Environment.CurrentManagedThreadId' dari daftar opsi yang disajikan.
Kapan harus menekan peringatan
Aman untuk menyembunyikan pelanggaran aturan ini jika Anda tidak khawatir tentang dampak performa dari menggunakan Thread.CurrentThread.ManagedThreadId
.
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 CA1840
// The code that's violating the rule is on this line.
#pragma warning restore CA1840
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none
dalam file konfigurasi.
[*.{cs,vb}]
dotnet_diagnostic.CA1840.severity = none
Untuk informasi selengkapnya, lihat Cara menyembunyikan peringatan analisis kode.