Erreur du compilateur C2384
'membre' : impossible d'appliquer __declspec(thread) à un membre d'une classe managée ou WinRT
Le modificateur __declspec
thread ne peut pas être utilisé sur un membre d’une classe managée ou Windows Runtime.
Le stockage local des threads de type statique dans du code managé peut être utilisé uniquement pour les DLL statiquement chargées. La DLL doit être chargée statiquement au démarrage du processus. Windows Runtime ne prend pas en charge le stockage local des threads.
La ligne suivante génère l'erreur C2384 et montre comment la résoudre dans du code C++/CLI :
// C2384.cpp
// compile with: /clr /c
public ref class B {
public:
__declspec( thread ) static int tls_i = 1; // C2384
// OK - declare with attribute instead
[System::ThreadStaticAttribute]
static int tls_j;
};