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 |