CA1840: Use Environment.CurrentManagedThreadId em vez de Thread.CurrentThread.ManagedThreadId

Property Valor
ID da regra CA1840
Título Usar Environment.CurrentManagedThreadId em vez de Thread.CurrentThread.ManagedThreadId
Categoria Desempenho
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Como sugestão

Causa

Usar Thread.CurrentThread.ManagedThreadId para obter a ID do thread gerenciado atual em vez de System.Environment.CurrentManagedThreadId.

Descrição da regra

System.Environment.CurrentManagedThreadId é uma substituição compacta e eficiente do padrão Thread.CurrentThread.ManagedThreadId.

Como corrigir violações

A violação pode ser corrigida manualmente ou, em alguns casos, usando ações rápidas para corrigir o código no Visual Studio.

Os dois snippets de código a seguir mostram uma violação da regra e como corrigi-la:

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

Dica

Uma correção de código está disponível para essa regra no Visual Studio. Para usá-la, posicione o cursor sobre a violação e pressione Ctrl+. (ponto). Escolha Use 'Environment.CurrentManagedThreadId' na lista de opções apresentadas.

Code fix for CA1840 - Use 'Environment.CurrentManagedThreadId'

Quando suprimir avisos

É seguro suprimir uma violação dessa regra se você não estiver preocupado com o impacto no desempenho com o uso de Thread.CurrentThread.ManagedThreadId.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

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

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

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

Para obter mais informações, confira Como suprimir avisos de análise de código.

Confira também