Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Свойство | Значение |
|---|---|
| Идентификатор правила | 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' в списке представленных вариантов.
Когда лучше отключить предупреждения
Можно безопасно подавить нарушение этого правила, если вас не беспокоит влияние на производительность при использовании 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
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.