Share via


CA1840: Environment.CurrentManagedThreadId gebruiken in plaats van Thread.CurrentThread.ManagedThreadId

Eigenschappen Weergegeven als
Regel-id CA1840
Titel Environment.CurrentManagedThreadId gebruiken in plaats van Thread.CurrentThread.ManagedThreadId
Categorie Prestaties
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 9 Als suggestie

Oorzaak

Gebruiken Thread.CurrentThread.ManagedThreadId om de huidige beheerde thread-id op te halen in plaats van System.Environment.CurrentManagedThreadId.

Beschrijving van regel

System.Environment.CurrentManagedThreadId is een compacte en efficiënte vervanging van het Thread.CurrentThread.ManagedThreadId patroon.

Schendingen oplossen

De schending kan handmatig worden opgelost, of in sommige gevallen met snelle acties om code in Visual Studio op te lossen.

In de volgende twee codefragmenten ziet u een schending van de regel en hoe u deze kunt oplossen:

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

Er is een codeoplossing beschikbaar voor deze regel in Visual Studio. Als u deze wilt gebruiken, plaatst u de cursor op de schending en drukt u op Ctrl+. (punt). Kies Environment.CurrentManagedThreadId gebruiken in de lijst met opties die worden weergegeven.

Codefix voor CA1840 - Gebruik 'Environment.CurrentManagedThreadId'

Wanneer waarschuwingen onderdrukken

Het is veilig om een schending van deze regel te onderdrukken als u zich geen zorgen maakt over de gevolgen voor de prestaties van het gebruik Thread.CurrentThread.ManagedThreadId.

Een waarschuwing onderdrukken

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.

#pragma warning disable CA1840
// The code that's violating the rule is on this line.
#pragma warning restore CA1840

Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none ervan in op het configuratiebestand.

[*.{cs,vb}]
dotnet_diagnostic.CA1840.severity = none

Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.

Zie ook