Compartilhar via


Erro do compilador C2384

'member' : não é possível aplicar __declspec(thread) a um membro de uma classe gerenciada ou WinRT

O modificador thread __declspec não pode ser usado em um membro de uma classe gerenciada ou de Tempo de Execução do Windows.

O armazenamento local do thread estático no código gerenciado só pode ser usado para DLLs carregadas estaticamente— a DLL deve ser carregada estaticamente quando o processo for iniciado. O Windows Runtime não dá suporte ao armazenamento local de thread.

A linha a seguir gera C2384 e mostra como corrigi-lo no código 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;
};