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

IDirectPlay8ThreadPool::DoWork 메서드


현재 스케줄 되고 있는 작업을 실행한다.

구문

HRESULT DoWork(      

    const DWORD dwAllowedTimeSlice,     const DWORD dwFlags );

파라미터

dwAllowedTimeSlice
[in] 작업이 완료하기까지 이용할 수 있는 시간을 지정한다. 곧바로 이용 가능한 항목을 모두 실행할 수 있도록(듯이) 하려면 , INFINITE 로 설정한다.
dwFlags
[in] 예약이 끝난 상태. 0 이 아니면 안된다.

반환값

추가 작업을 곧바로 이용할 수 없는 경우는 DPN_OK 를 돌려준다. dwAllowedTimeSlice 이 INFINITE 로 설정하고 있지 않고, 미처리의 작업 항목을 남겨 지정한 시간이 지났을 경우, DPNSUCCESS_PENDING 가 반환된다. 그 이외의 경우, 다음의 몇개의 에러를 돌려준다.

DPNERR_UNINITIALIZED요구된 개체가 초기화되지 않다.
DPNERR_INVALIDFLAGS이 메서드에 건네진 플래그는 무효이다.
DPNERR_NOTREADY개체를 사용할 준비가 되지 않다.
DPNERR_NOTALLOWED이 기능은, 이 개체에서는 허가되지 않다.


주의

이 메서드를 사용하면 Microsoft® DirectPlay® 는 독자적인 thread없이 동작할 수 있다. 타임 크리티컬인 처리가 거의 정확하게 실행할 수 있도록(듯이), 일정 간격으로 이 메서드를 호출하는 것이 요구되고 있다.

dwAllowedTimeSlice 파라미터는 0 ~ 60,000 밀리 세컨드 (1 초)로 설정할 필요가 있다. 또, INFINITE 로 설정할 수도 있다. 0 으로 설정했을 경우, 작업 항목은 1 개까지 밖에 실행되지 않는다.

thread수가 0 으로 설정되어 있는 경우, 이 메서드는 호출할 수 없다. 현재 액티브한 thread가 있는 경우, 이 메서드는 DPNERR_NOTREADY 를 돌려준다.

복수의 thread가 동시에, 재귀적으로, 또는 DirectPlay 콜백내에서 이 메서드를 호출하려고 했을 경우,DPNERR_NOTALLOWED 가 반환된다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP