Бөлісу құралы:


CA1840: Используйте Environment.CurrentManagedThreadId вместо Thread.CurrentThread.ManagedThreadId

Свойство Значение
Идентификатор правила CA1840
Заголовок Используйте Environment.CurrentManagedThreadId вместо Thread.CurrentThread.ManagedThreadId
Категория Производительность
Исправление является критическим или не критическим неразрывный
Включен по умолчанию в .NET 10 Как предложение
Применимые языки C# и Visual Basic

Причина

Использование Thread.CurrentThread.ManagedThreadId для получения текущего идентификатора управляемого потока вместо System.Environment.CurrentManagedThreadId.

Описание правила

System.Environment.CurrentManagedThreadId — это компактная и эффективная замена шаблона Thread.CurrentThread.ManagedThreadId.

Устранение нарушений

Нарушение можно устранить вручную. В некоторых случаях для исправления кода в Visual Studio можно использовать быстрые действия.

В следующих двух фрагментах кода показано нарушение правила и способы его устранения:

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

Совет

Для этого правила в Visual Studio доступно исправление кода. Чтобы использовать его, поместите курсор на нарушение и нажмите Ctrl+. (точка). Выберите 'Использовать Environment.CurrentManagedThreadId' в списке представленных вариантов.

Исправление коду для CA1840 - Использовать 'Environment.CurrentManagedThreadId'

Когда лучше отключить предупреждения

Можно безопасно подавить нарушение этого правила, если вас не беспокоит влияние на производительность при использовании Thread.CurrentThread.ManagedThreadId.

Отключение предупреждений

Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.

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

Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.

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

Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.

См. также