CA2003 : Ne traitez pas les fibres comme des threads
Élément | Valeur |
---|---|
ID de la règle | CA2003 |
Category | Microsoft.Reliability |
Modification avec rupture | Sans rupture |
Cause
Un thread managé est traité comme un thread Win32.
Remarque
Cette règle est déconseillée. Pour plus d’informations, consultez Règles dépréciées.
Description de la règle
Ne partez pas du principe qu’un thread managé est un thread Win32 : il s’agit d’une fibre. Le Common Language Runtime (CLR) exécute les threads managés comme des fibres dans le contexte de threads réels appartenant à SQL. Ces threads peuvent être partagés entre AppDomain et même entre bases de données dans le processus SQL Server. Le stockage local de thread managés fonctionne, mais vous ne pourrez peut-être pas utiliser le stockage local de thread non managé ni supposer que votre code se réexécutera sur le thread du système d’exploitation actuel. Ne modifiez pas de paramètres comme les paramètres régionaux du thread. N’appelez pas CreateCriticalSection ni CreateMutex par un appel de code non managé, car ils exigent que le thread verrouillé soit aussi déverrouillé. Étant donné que le thread verrouillé ne se déverrouille pas lorsque vous utilisez des fibres, les sections critiques Win32 et les mutex sont inutiles dans SQL. Vous pouvez utiliser sans risque la plupart des éléments d’état sur un objet Thread managé, notamment le stockage local de thread managé et la culture actuelle de l’interface utilisateur du thread. Pour des raisons de modèle de programmation toutefois, il n’est pas possible de modifier la culture actuelle d’un thread avec SQL. Cette limitation sera appliquée par le biais d’une nouvelle autorisation.
Comment corriger les violations
Examinez votre utilisation des threads et modifiez votre code en conséquence.
Quand supprimer les avertissements
Ne supprimez pas cette règle.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour