Condividi tramite


Funzione MFPutWaitingWorkItem (mfapi.h)

Accoda un elemento di lavoro che attende la segnalazione di un evento.

Sintassi

HRESULT MFPutWaitingWorkItem(
  [in]  HANDLE         hEvent,
  [in]  LONG           Priority,
  [in]  IMFAsyncResult *pResult,
  [out] MFWORKITEM_KEY *pKey
);

Parametri

[in] hEvent

Handle per un oggetto evento. Per creare un oggetto evento, chiamare CreateEvent o CreateEventEx.

[in] Priority

Priorità dell'elemento di lavoro. Gli elementi di lavoro vengono eseguiti in ordine di priorità.

[in] pResult

Puntatore all'interfaccia IMFAsyncResult di un oggetto risultato asincrono. Per creare l'oggetto risultato, chiamare MFCreateAsyncResult.

[out] pKey

Riceve una chiave che può essere utilizzata per annullare l'attesa. Per annullare l'attesa, chiamare MFCancelWorkItem e passare questa chiave nel parametro Key .

Questo parametro può essere NULL.

Valore restituito

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

Commenti

Questa funzione consente a un componente di attendere un evento senza bloccare il thread corrente.

La funzione inserisce un elemento di lavoro nella coda di lavoro specificata. Questo elemento di lavoro attende che l'evento specificato in hEvent venga segnalato. Quando l'evento viene segnalato, l'elemento di lavoro richiama un callback. Il callback è contenuto nell'oggetto risultato specificato in pResult. Per altre informazioni, vedere MFCreateAsyncResult.

L'elemento di lavoro viene inviato in una coda di lavoro dal metodo IMFAsyncCallback::GetParameters del callback. La coda di lavoro può essere una delle seguenti:

  • Coda di lavoro predefinita (MFASYNC_CALLBACK_QUEUE_STANDARD).
  • Coda multithreading della piattaforma (MFASYNC_CALLBACK_QUEUE_MULTITHREADED).
  • Coda multithreading restituita dalla funzione MFLockSharedWorkQueue .
  • Coda seriale creata dalla funzione MFAllocateSerialWorkQueue .
Non usare le code di lavoro seguenti: MFASYNC_CALLBACK_QUEUE_IO, MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION, MFASYNC_CALLBACK_QUEUE_RT o MFASYNC_CALLBACK_QUEUE_TIMER.

Requisiti

Requisito Valore
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
DLL Mfplat.dll

Vedi anche

Funzioni di Media Foundation

Miglioramenti alla coda di lavoro e al threading

Code di lavoro