DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8ThreadPool SetThreadCount   [목차열람] [주소복사] [슬롯비우기]
IDirectPlay8ThreadPool::SetThreadCount 메서드
 
Microsoft DirectX 9.0

IDirectPlay8ThreadPool::SetThreadCount 메서드


지정한 프로세서 또는 모든 프로세서의 thread수를 변경한다.

구문

HRESULT SetThreadCount(      

    const DWORD dwProcessorNum,     const DWORD dwNumThreads,     const DWORD dwFlags );

파라미터

dwProcessorNum
[in] 프로세서수를 지정한다. 모든 프로세서의 thread수를 변경하려면,-1 를 설정한다.
dwNumThreads
[in] 새로운 thread수를 지정한다.
dwFlags
[in] 예약이 끝난 상태. 0 이 아니면 안된다.

반환값

성공했을 경우는 DPN_OK 를 돌려준다. 그 이외의 경우, 다음의 몇개의 에러를 돌려준다.

DPNERR_UNINITIALIZED요구된 개체가 초기화되지 않다.
DPNERR_INVALIDFLAGS이 메서드에 건네진 플래그는 무효이다.
DPNERR_INVALIDPARAM메서드에 건네진 1 개 혹은 복수의 파라미터가 무효이다.
DPNERR_NOTALLOWED이 기능은, 이 개체에서는 허가되지 않다.


주의

dwNumThreads 파라미터의 값이 현재의 thread수보다 큰 경우, 새로운 thread가 시작 되어 새로운 thread 마다 DPN_MSGID_CREATE_THREAD 메시지를 생성한 후, 이 메서드가 돌아온다.

dwNumThreads 파라미터의 값이 현재의 thread수보다 작은 경우, 여분의 thread는 셧다운 되어 닫혀지는 thread 마다 DPN_MSGID_DESTROY_THREAD 메시지를 생성한 후, 이 메서드가 돌아온다.

thread수가 0 으로 설정되어 있는 경우, Microsoft® DirectPlay® 는 애플리케이션에 thread를 생성 하지 않는다. 따라서, 애플리케이션으로 무엇인가 처리를 실시하려면 , 정기적으로 IDirectPlay8ThreadPool::DoWork 를 호출할 필요가 있다.

thread수가 0 으로 설정되어 있는 경우, DirectPlay 의 태스크의 동작은 DirectPlay thread를 사용하고 있는 경우와는 다르다. 따라서, 세션을 생성 한 후는, 제로 thread수모드와 multi-thread수모드를 바꾸지 않는 것을 추천한다.

IDirectPlay8ThreadPool::DoWork 의 미처리의 호출이 있을 때 이 메서드가 불려 갔을 경우, 이 메서드는 DPNERR_NOTALLOWED 를 돌려준다. 이 경우, thread수는 변화하지 않는다.

dwNumThreads 파라미터가 현재의 thread수보다 작고, 이 메서드가 IDirectPlay8ThreadPool thread로부터 불려 가는 경우, 이 메서드는 DPNERR_NOTALLOWED 를 돌려준다. 이 경우, thread수는 변화하지 않는다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP