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
S_OK
함수가 성공했습니다.
E_FAIL
애플리케이션이 최대 작업 큐 수를 초과했습니다.
RTWQ_E_SHUTDOWN
애플리케이션이 RtwqStartup을 호출하지 않았거나 애플리케이션이 이미 RtwqShutdown을 호출했습니다.

설명

작업 큐 사용을 마쳤으면 RtwqUnlockWorkQueue를 호출합니다.

다중 스레드 큐는 스레드 풀을 사용하여 파이프라인의 총 스레드 수를 줄일 수 있습니다. 그러나 작업 항목을 직렬화하지는 않습니다. 직렬 작업 큐를 사용하면 애플리케이션이 자체 작업 항목의 수동 serialization을 수행할 필요 없이 스레드 풀의 이점을 얻을 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 rtworkq.h
라이브러리 Rtworkq.lib
DLL RTWorkQ.dll

추가 정보

RTWQ_WORKQUEUE_TYPE