C \ # 라인 - < CLR via C \ # (제4 판) >
4893 단어 C#C \ # 프로 그래 밍 체험
다음 함수 보기: DisableThreadLibrary Calls function
Disables the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications for the specified dynamic-link library (DLL). This can reduce the size of the working set for some applications.
Syntax
C++
BOOL DisableThreadLibraryCalls(
HMODULE hLibModule
);
Parameters
A handle to the DLL module for which the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications are to be disabled. The LoadLibrary, LoadLibraryEx, or GetModuleHandle function returns this handle. Note that you cannot call GetModuleHandle with NULL because this returns the base address of the executable image, not the DLL image.
Return Value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. The DisableThreadLibraryCalls function fails if the DLL specified by hModule has active static thread local storage, or if hModule is an invalid module handle. To get extended error information, call GetLastError.
Remarks
The DisableThreadLibraryCalls function lets a DLL disable the DLL_THREAD_ATTACH and DLL_THREAD_DETACH notification calls. This can be a useful optimization for multithreaded applications that have many DLLs, frequently create and delete threads, and whose DLLs do not need these thread-level notifications of attachment/detachment. A remote procedure call (RPC) server application is an example of such an application. In these sorts of applications, DLL initialization routines often remain in memory to service DLL_THREAD_ATTACH and DLL_THREAD_DETACH notifications. By disabling the notifications, the DLL initialization code is not paged in because a thread is created or deleted, thus reducing the size of the application’s working code set. To implement the optimization, modify a DLL’s DLL_PROCESS_ATTACH code to call DisableThreadLibraryCalls.
Do not call this function from a DLL that is linked to the static C run-time library (CRT). The static CRT requires DLL_THREAD_ATTACH and DLL_THREAD_DETATCH notifications to function properly.
Requirements
Minimum supported client
Windows XP [desktop apps
Minimum supported server
Windows Server 2003 [desktop apps
Target Platform
Windows
Header
libloaderapi.h (include Windows.h)
Library
Kernel32.lib
DLL
Kernel32.dll
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-disablethreadlibrarycalls
C \ # 와 다른 대부분의 위탁 관리 언어 에서 생 성 된 DLL 에는 DllMain 함수 가 없습니다. 따라서 위탁 관리 DLL 은 DLL THREAD ATTACH 와 DLL THREAD DETACH 알림 을 받 지 않 고 성능 을 향상 시 킵 니 다. 또한, 위탁 관리 DLL 이 아 닌 Win 32 DisableThreadLibrary Calls 함 수 를 호출 하여 이 알림 을 무시 하기 로 결 정 했 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.