CA1840: Použijte Environment.CurrentManagedThreadId místo Thread.CurrentThread.ManagedThreadId.
Vlastnost | Hodnota |
---|---|
ID pravidla | CA1840 |
Název | Použijte Environment.CurrentManagedThreadId místo Thread.CurrentThread.ManagedThreadId. |
Kategorie | Výkon |
Oprava způsobující chybu nebo chybu způsobující chybu | Nenarušující |
Povoleno ve výchozím nastavení v .NET 9 | Jako návrh |
Příčina
Používá se Thread.CurrentThread.ManagedThreadId
k získání aktuálního ID spravovaného System.Environment.CurrentManagedThreadIdvlákna místo .
Popis pravidla
System.Environment.CurrentManagedThreadId je kompaktní a efektivní výměna Thread.CurrentThread.ManagedThreadId
vzoru.
Jak opravit porušení
Porušení může být buď opraveno ručně, nebo v některých případech pomocí rychlých akcí opravit kód v sadě Visual Studio.
Následující dva fragmenty kódu ukazují porušení pravidla a postup jeho opravy:
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
Oprava kódu je k dispozici pro toto pravidlo v sadě Visual Studio. Pokud ho chcete použít, umístěte kurzor na porušení a stiskněte ctrl+. (tečka). V seznamu zobrazených možností zvolte Environment.CurrentManagedThreadId .
Kdy potlačit upozornění
Je bezpečné potlačit porušení tohoto pravidla, pokud si nejste jisti dopadem na výkon při používání Thread.CurrentThread.ManagedThreadId
.
Potlačení upozornění
Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.
#pragma warning disable CA1840
// The code that's violating the rule is on this line.
#pragma warning restore CA1840
Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none
konfiguračním souboru.
[*.{cs,vb}]
dotnet_diagnostic.CA1840.severity = none
Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.