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;
};