RtwqAllocateSerialWorkQueue 함수(rtworkq.h)
작업 항목을 직렬화하도록 보장되는 다른 작업 큐 위에 가상 작업 큐를 만듭니다. 직렬 작업 큐는 기존 다중 스레드 작업 큐를 래핑합니다. 직렬 작업 큐는 FIFO(선점) 실행 순서를 적용합니다.
구문
HRESULT RtwqAllocateSerialWorkQueue(
[in] DWORD workQueueIdIn,
[out] DWORD *workQueueIdOut
);
매개 변수
[in] workQueueIdIn
기존 작업 큐의 식별자입니다. 다중 스레드 큐 또는 다른 직렬 작업 큐여야 합니다. 다음 중 어느 것을 사용할 수 있습니다.
- 기본 작업 큐(RTWQ_STANDARD_WORKQUEUE)입니다. RTWQ_WORKQUEUE_TYPE 참조하세요.
- 플랫폼 다중 스레드 큐(RTWQ_MULTITHREADED_WORKQUEUE)입니다. RTWQ_WORKQUEUE_TYPE 참조하세요.
- RtwqLockSharedWorkQueue 함수에서 반환되는 다중 스레드 큐입니다.
- RtwqAllocateSerialWorkQueue 함수에서 만든 직렬 큐입니다.
[out] workQueueIdOut
새 직렬 작업 큐에 대한 식별자를 받습니다. 작업 항목을 큐에 대기할 때 이 식별자를 사용합니다.
반환 값
이 함수는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
함수가 성공했습니다. |
|
애플리케이션이 최대 작업 큐 수를 초과했습니다. |
|
애플리케이션이 RtwqStartup을 호출하지 않았거나 애플리케이션이 이미 RtwqShutdown을 호출했습니다. |
설명
작업 큐 사용을 마쳤으면 RtwqUnlockWorkQueue를 호출합니다.
다중 스레드 큐는 스레드 풀을 사용하여 파이프라인의 총 스레드 수를 줄일 수 있습니다. 그러나 작업 항목을 직렬화하지는 않습니다. 직렬 작업 큐를 사용하면 애플리케이션이 자체 작업 항목의 수동 serialization을 수행할 필요 없이 스레드 풀의 이점을 얻을 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8.1 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2012 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | rtworkq.h |
라이브러리 | Rtworkq.lib |
DLL | RTWorkQ.dll |