CA1840: Använd Environment.CurrentManagedThreadId i stället för Thread.CurrentThread.ManagedThreadId
Property | Värde |
---|---|
Regel-ID | CA1840 |
Title | Använd Environment.CurrentManagedThreadId i stället för Thread.CurrentThread.ManagedThreadId |
Kategori | Prestanda |
Korrigeringen är icke-bakåtkompatibel | Icke-icke-bryta |
Aktiverad som standard i .NET 9 | Som förslag |
Orsak
Använda Thread.CurrentThread.ManagedThreadId
för att hämta aktuellt hanterat tråd-ID i stället System.Environment.CurrentManagedThreadIdför .
Regelbeskrivning
System.Environment.CurrentManagedThreadId är en kompakt och effektiv ersättning av Thread.CurrentThread.ManagedThreadId
mönstret.
Så här åtgärdar du överträdelser
Överträdelsen kan antingen åtgärdas manuellt eller i vissa fall med hjälp av snabbåtgärder för att åtgärda kod i Visual Studio.
Följande två kodfragment visar ett brott mot regeln och hur du åtgärdar den:
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
Dricks
En kodkorrigering är tillgänglig för den här regeln i Visual Studio. Om du vill använda den placerar du markören på överträdelsen och trycker på Ctrl+. (punkt). Välj Använd "Environment.CurrentManagedThreadId" i listan över alternativ som visas.
När du ska ignorera varningar
Det är säkert att förhindra en överträdelse av den här regeln om du inte bryr dig om prestandapåverkan från att använda Thread.CurrentThread.ManagedThreadId
.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA1840
// The code that's violating the rule is on this line.
#pragma warning restore CA1840
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA1840.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.