Partager via


CA1840 : utilisez Environment.CurrentManagedThreadId au lieu de Thread.CurrentThread.ManagedThreadId

Propriété Value
Identificateur de la règle CA1840
Titre Utiliser Environment.CurrentManagedThreadIdà la place de Thread.CurrentThread.ManagedThreadId
Catégorie Performances
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut dans .NET 8 À titre de suggestion

Cause

Utilisation de Thread.CurrentThread.ManagedThreadId pour obtenir l’ID de thread managé actuel au lieu de System.Environment.CurrentManagedThreadId.

Description de la règle

System.Environment.CurrentManagedThreadId est un remplacement compact et efficace du modèle Thread.CurrentThread.ManagedThreadId.

Comment corriger les violations

La violation peut être corrigée soit manuellement, soit dans certains cas à l’aide d’actions rapides pour corriger le code dans Visual Studio.

Les deux extraits de code suivants montrent une violation de la règle et comment la corriger :

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

Conseil

Un correctif de code est disponible pour cette règle dans Visual Studio. Pour l’utiliser, positionnez le curseur sur la violation et appuyez sur Ctrl+. (point). Choisissez Utiliser 'Environment.CurrentManagedThreadId' dans la liste des options présentées.

Code fix for CA1840 - Use 'Environment.CurrentManagedThreadId'

Quand supprimer les avertissements

Vous pouvez supprimer une violation de cette règle en toute sécurité si vous ne vous souciez pas de l’impact des performances dû à l’utilisation de Thread.CurrentThread.ManagedThreadId.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

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

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

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

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi