Share via


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 8 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 .

Code fix for CA1840 - Use '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.

Viz také