Udostępnij za pośrednictwem


Czy biblioteka MFC DLL może tworzyć wiele wątków?

Z wyjątkiem podczas inicjalizacji biblioteki MFC DLL można bezpiecznie tworzenia wielu wątków tak długo, jak długo używa magazynu lokalnego (TLS) funkcji, takich jak wątek Win32 TlsAlloc przydzielić lokalnego magazynu wątków.Jednakże jeśli używa biblioteki MFC DLL __declspec(thread) przydzielić lokalnego magazynu wątków, aplikacja kliencka musi być niejawnie połączone z biblioteki DLL.Jeśli aplikacja kliencka jawnie łącza do biblioteki DLL, wywołanie LoadLibrary nie zostanie pomyślnie załadować biblioteki DLL.Aby uzyskać więcej informacji na temat tworzenia wielu wątków wewnątrz biblioteki MFC DLL zobacz artykuł bazy wiedzy, "PRB: wywołanie wywołanie funkcji LoadLibrary() do ładowania DLL że ma statyczny TLS" (Q118816).

MFC DLL, który tworzy nowy wątek MFC podczas uruchamiania przestanie odpowiadać, gdy jest ładowany przez aplikację.Obejmuje to w każdym przypadku, gdy wątek jest tworzony przez wywołanie AfxBeginThread lub CWinThread::CreateThread wewnątrz:

  • InitInstance z CWinApp-pochodnych obiektu w regularnych biblioteki DLL.

  • Podana DllMain lub RawDllMain funkcji w bibliotece DLL regularnych.

  • Podana DllMain lub RawDllMain funkcji w bibliotece DLL rozszerzenia.

Aby uzyskać więcej informacji na temat tworzenia wątków podczas inicjowania zobacz artykuł bazy wiedzy, "PRB: nie można utworzyć MFC wątku podczas DLL Startup" (Q142243).

Zobacz też

Koncepcje

DLL — często zadawane pytania