CA1840: usare Environment.CurrentManagedThreadId anziché Thread.CurrentThread.ManagedThreadId

Proprietà valore
ID regola CA1840
Title Usare Environment.CurrentManagedThreadId anziché Thread.CurrentThread.ManagedThreadId
Categoria Prestazioni
Correzione che causa un'interruzione o un'interruzione Nessuna interruzione
Abilitato per impostazione predefinita in .NET 8 Come suggerimento

Causa

Uso di Thread.CurrentThread.ManagedThreadId per ottenere l'ID del thread gestito corrente anziché System.Environment.CurrentManagedThreadId.

Descrizione regola

System.Environment.CurrentManagedThreadId è una sostituzione compatta ed efficiente del Thread.CurrentThread.ManagedThreadId modello.

Come correggere le violazioni

La violazione può essere corretta manualmente o, in alcuni casi, usando Azioni rapide per correggere il codice in Visual Studio.

I due frammenti di codice seguenti mostrano una violazione della regola e come risolverli:

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

Suggerimento

Una correzione del codice è disponibile per questa regola in Visual Studio. Per usarlo, posizionare il cursore sulla violazione e premere CTRL+. (punto). Scegliere Usa 'Environment.CurrentManagedThreadId' dall'elenco delle opzioni presentate.

Code fix for CA1840 - Use 'Environment.CurrentManagedThreadId'

Quando eliminare gli avvisi

È possibile eliminare una violazione di questa regola se non si è interessati all'impatto sulle prestazioni dall'uso Thread.CurrentThread.ManagedThreadIddi .

Eliminare un avviso

Se si vuole eliminare una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare la regola.

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

Per disabilitare la regola per un file, una cartella o un progetto, impostarne la gravità none su nel file di configurazione.

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

Per altre informazioni, vedere Come eliminare gli avvisi di analisi del codice.

Vedi anche