Partilhar via


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

Property valor
ID da regra CA1840
Título Use Environment.CurrentManagedThreadId em vez de Thread.CurrentThread.ManagedThreadId
Categoria Desempenho
A correção está quebrando ou não quebrando Sem quebra
Habilitado por padrão no .NET 8 Como sugestão

Motivo

Usando Thread.CurrentThread.ManagedThreadId para obter o ID de thread gerenciado atual em vez de System.Environment.CurrentManagedThreadId.

Descrição da regra

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

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 trechos 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

Gorjeta

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

Code fix for CA1840 - Use 'Environment.CurrentManagedThreadId'

Quando suprimir avisos

É seguro suprimir uma violação desta regra se não estiver preocupado com o impacto no desempenho da utilização Thread.CurrentThread.ManagedThreadIddo .

Suprimir um aviso

Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar 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 para um arquivo, pasta ou projeto, defina sua severidade como none no arquivo de configuração.

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

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

Consulte também