CA2003 : Ne traitez pas les fibres comme des threadsCA2003: Do not treat fibers as threads

TypeNameTypeName DoNotTreatFibersAsThreadsDoNotTreatFibersAsThreads
CheckIdCheckId CA2003CA2003
CategoryCategory Microsoft.ReliabilityMicrosoft.Reliability
Modification avec ruptureBreaking Change Sans ruptureNon-breaking

CauseCause

Un thread managé est traité comme un thread Win32.A managed thread is being treated as a Win32 thread.

Description de la règleRule Description

Ne supposez pas qu'un thread managé est un thread Win32.Do not assume a managed thread is a Win32 thread. Il s’agit d’une fibre.It is a fiber. Le common language runtime (CLR) exécutera les threads managés en tant que fibres sur les threads réels appartenant à SQL.The common language runtime (CLR) will run managed threads as fibers in the context of real threads that are owned by SQL. Ces threads peuvent être partagés entre les domaines d’application et les bases de données dans le processus SQL Server.These threads can be shared across AppDomains and even databases in the SQL Server process. Fonctionnement du stockage local des threads managés, mais vous ne pouvez pas utiliser le stockage local des threads non managés ou supposer que votre code s’exécutera à nouveau sur le thread du système d’exploitation actuel.Using managed thread local storage will work, but you may not use unmanaged thread local storage or assume that your code will run on the current OS thread again. Ne modifiez pas les paramètres tels que les paramètres régionaux du thread.Do not change settings such as the locale of the thread. N’appelez pas CreateCriticalSection ou CreateMutex via P/Invoke, car ils requièrent que le thread qui accède à un verrou doit aussi être déverrouillé.Do not call CreateCriticalSection or CreateMutex via P/Invoke because they require that the thread that enters a lock must also exit the lock. Étant donné que ce ne sera pas le cas lorsque vous utilisez des fibres, les mutex et les sections critiques Win32 sera inutiles dans SQL.Because this will not be the case when you use fibers, Win32 critical sections and mutexes will be useless in SQL. Vous pouvez utiliser en toute sécurité de la plupart de l’état d’un objet System.Thread managé.You may safely use most of the state on a managed System.Thread object. Cela inclut le stockage local des threads managés et la culture d’interface utilisateur utilisateur actuelle du thread.This includes managed thread local storage and the current user interface (UI) culture of the thread. Toutefois, pour des raisons de modèle de programmation, vous ne serez pas être en mesure de modifier la culture actuelle d’un thread lorsque vous utilisez SQL ; Cela sera appliquée via une nouvelle autorisation.However, for programming model reasons, you will not be able to change the current culture of a thread when you use SQL; this will be enforced through a new permission.

Comment corriger les violationsHow to Fix Violations

Examinez votre utilisation des threads et modifiez votre code en conséquence.Examine your usage of threads and change your code accordingly.

Quand supprimer les avertissementsWhen to Suppress Warnings

Vous ne devez pas supprimer cette règle.You should not suppress this rule.