Uma DLL MFC pode criar vários threads?
Exceto durante a inicialização, uma DLL MFC pode seguramente criar vários threads como usar as funções de (TLS) local de armazenamento de thread Win32 como TlsAlloc para atribuir o armazenamento de thread local. No entanto, se uma DLL MFC usa __declspec(thread) para atribuir o armazenamento de thread local, o aplicativo cliente deve ser implicitamente vinculado à DLL. Se o aplicativo cliente vincula explicitamente a DLL, a chamada para LoadLibrary não carregará com êxito a DLL. Para obter mais informações sobre como criar vários threads dentro da DLL MFC, consulte o artigo da Base de Dados de Conhecimento, “PRB: LoadLibrary() chamada para carregar uma DLL que tem o TLS estático” (Q118816).
Uma DLL MFC que cria um novo thread de MFC durante a inicialização parará de responder quando é carregado por um aplicativo. Isso inclui sempre que um thread é criado chamando AfxBeginThread ou o interior de CWinThread::CreateThread :
InitInstance de CWinApp- objeto derivada em uma DLL normal.
DllMain ou uma função de RawDllMain fornecida em uma DLL normal.
DllMain ou uma função de RawDllMain fornecida em uma DLL da extensão.
Para obter mais informações sobre como criar threads durante a inicialização, consulte o artigo da Base de Dados de Conhecimento, “PRB: Não é possível criar um thread de MFC durante a inicialização da DLL” (Q142243).