CA1840. Использование Environment.CurrentManagedThreadId вместо Thread.CurrentThread.ManagedThreadId
Свойство | Значение |
---|---|
Идентификатор правила | CA1840 |
Заголовок | Используйте Environment.CurrentManagedThreadId вместо Thread.CurrentThread.ManagedThreadId |
Категория | Производительность |
Исправление является критическим или не критическим | Не критическое |
Включен по умолчанию в .NET 8 | Как предложение |
Причина
Использование 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 в списке представленных вариантов.
Когда лучше отключить предупреждения
Можно безопасно подавить информирование о нарушении этого правила, если вас не беспокоит влияние на производительность при использовании 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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.