Condividi tramite


Funzione MFLockSharedWorkQueue (mfapi.h)

Ottiene e blocca una coda di lavoro condivisa.

Sintassi

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

Parametri

[in] wszClass

Nome dell'attività MMCSS.

[in] BasePriority

Priorità di base dei thread della coda di lavoro.

Se viene usata la coda con priorità regolare (wszClass=""), il valore 0 deve essere passato.

[in, out] pdwTaskId

Identificatore dell'attività MMCSS. In input specificare un ID gruppo di attività MCCSS esistente oppure usare il valore zero per creare un nuovo gruppo di attività. Se viene usata la coda di priorità regolare (wszClass=""), è necessario passare NULL. Nell'output riceve l'ID del gruppo di attività effettivo.

[out] pID

Riceve un identificatore per la nuova coda di lavoro. Usare questo identificatore durante l'accodamento degli elementi di lavoro.

Valore restituito

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Una coda di lavoro multithreading usa un pool di thread per l'invio di elementi di lavoro. Ogni volta che un thread diventa disponibile, rimuove dalla coda l'elemento di lavoro successivo. Gli elementi di lavoro vengono dequeuati nell'ordine first-in-first-out, ma gli elementi di lavoro non vengono serializzati. In altre parole, la coda di lavoro non attende il completamento di un elemento di lavoro prima di avviare l'elemento di lavoro successivo.

All'interno di un singolo processo, la piattaforma Microsoft Media Foundation crea fino a una coda multithreading per ogni attività MMCSS (Multimedia Class Scheduler Service). La funzione MFLockSharedWorkQueue controlla se esiste già una coda di lavoro corrispondente. In caso contrario, la funzione crea una nuova coda di lavoro e registra la coda di lavoro con MMCSS. La funzione restituisce l'identificatore dell'attività MMCSS (pdwTaskId) e l'identificatore della coda di lavoro (pID). Per accodare un elemento di lavoro, passare l'identificatore della coda di lavoro a una delle funzioni seguenti:

La funzione MFLockSharedWorkQueue blocca anche la coda. Prima dell'uscita del processo, chiamare MFUnlockWorkQueue per sbloccare la coda di lavoro.

Se viene usata la coda di priorità regolare (wszClass=""), è necessario passare NULL a pdwTaskId e il valore 0 deve essere passato in BasePriority.

Requisiti

   
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mfapi.h
Libreria Mfplat.lib
DLL Mfplat.dll

Vedi anche

Funzioni di Media Foundation

Miglioramenti alla coda di lavoro e al threading

Code di lavoro