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 ; Il s’agit d’une fibre.Do not assume a managed thread is a Win32 thread; it's a fiber. Le common language runtime (CLR) exécute les threads managés en tant que fibres dans le contexte de threads réels qui sont détenus par SQL.The common language runtime (CLR) runs 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. À l’aide de managed works de stockage local de thread, mais vous ne pouvez pas utiliser le stockage local de thread non managé ou supposent que votre code s’exécutera à nouveau sur le thread de système d’exploitation actuel.Using managed thread local storage works, 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 elles nécessitent 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 le thread qui accède à un verrou ne ferme pas un verrou lors de l’utilisation de fibres, les mutex et les sections critiques Win32 sont inutiles dans SQL.Because the thread that enters a lock doesn't exit a lock when you use fibers, Win32 critical sections and mutexes are useless in SQL. Vous pouvez utiliser en toute sécurité de la majeure partie de l’état sur managé Thread objet, y compris le stockage local des threads managés et la culture d’interface utilisateur utilisateur actuelle du thread.You may safely use most of the state on a managed Thread object, including 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 pourrez modifier la culture actuelle d’un thread lorsque vous utilisez SQL.However, for programming model reasons, you won't be able to change the current culture of a thread when you use SQL. Cette limitation est appliquée via une nouvelle autorisation.This limitation 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

Ne supprimez pas cette règle.Do not suppress this rule.