共用方式為


MFLockSharedWorkQueue 函式 (mfapi.h)

取得和鎖定共用工作佇列。

語法

HRESULT MFLockSharedWorkQueue(
  [in]      PCWSTR wszClass,
  [in]      LONG   BasePriority,
  [in, out] DWORD  *pdwTaskId,
  [out]     DWORD  *pID
);

參數

[in] wszClass

MMCSS 工作的名稱。

[in] BasePriority

工作佇列執行緒的基底優先順序。

如果使用一般優先順序佇列 (wszClass=「」) ,則必須傳入值 0。

[in, out] pdwTaskId

MMCSS 工作識別碼。 在輸入時,指定現有的 MCCSS 工作組識別碼,或使用零值來建立新的工作組。 如果使用一般優先順序佇列 (wszClass=「」) ,則必須傳入 Null 。 在輸出中,接收實際的工作組識別碼。

[out] pID

接收新工作佇列的識別碼。 在佇列工作專案時使用此識別碼。

傳回值

如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

多執行緒工作佇列會使用執行緒集區來分派工作專案。 每當執行緒變成可用時,就會從佇列取消佇列中的下一個工作專案。 工作專案會以優先先出的順序取消佇列,但工作專案不會序列化。 換句話說,工作佇列不會等待工作專案在開始下一個工作專案之前完成。

在單一程式中,Microsoft Media Foundation 平臺會為每個多媒體類別排程器服務建立最多一個多執行緒佇列 (MMCSS) 工作。 MFLockSharedWorkQueue函式會檢查相符的工作佇列是否已存在。 如果沒有,函式會建立新的工作佇列,並使用 MMCSS 註冊工作佇列。 函式會傳回 mmCSS 工作識別碼 (pdwTaskId) ,而工作佇列識別碼 (pID) 。 若要將工作專案排入佇列,請將工作佇列識別碼傳遞至下列任何函式:

MFLockSharedWorkQueue函式也會鎖定佇列。 在進程結束之前,請呼叫 MFUnlockWorkQueue 以解除鎖定工作佇列。

如果使用一般優先順序佇列 (wszClass=「」) ,則必須將 Null 傳入 pdwTaskId ,且值 0 必須傳入 BasePriority

需求

   
最低支援的用戶端 Windows 8 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2012 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 mfapi.h
程式庫 Mfplat.lib
Dll Mfplat.dll

另請參閱

媒體基礎函式

工作佇列和執行緒改善

工作佇列