Condividi tramite


modello Data-Pull e modello di Data-Push

Un client di un moniker asincrono può scegliere tra un modello di pull dati e di push dati per guidare un'operazione asincrona IMoniker::BindToStorage e ricevere notifiche asincrone. Nel modello di pull dei dati, il client guida l'operazione di associazione e il moniker fornisce i dati al client solo durante la lettura. In altre parole, dopo la prima chiamata a IBindStatusCallback::OnDataAvailable, il moniker non fornisce dati al client a meno che il client non abbia utilizzato tutti i dati già disponibili.

Poiché i dati vengono scaricati solo quando sono richiesti, i client che scelgono il modello di pull dei dati devono assicurarsi di leggere questi dati in modo tempestivo. Nel caso dei download Internet con moniker URL , l'operazione di associazione potrebbe non riuscire se un client attende troppo tempo prima di richiedere più dati.

Nel modello di push dei dati il moniker determina l'operazione di associazione asincrona e invia continuamente una notifica al client ogni volta che sono disponibili nuovi dati. Il client può scegliere se leggere i dati in qualsiasi momento durante l'operazione di associazione, ma il moniker porterà l'operazione di associazione al completamento indipendentemente dal completamento.

Inoltre, è necessario ricordare di seguire le regole COM per l'allocazione di memoria quando si usano moniker asincroni, in particolare quanto segue:

  • Ogni volta che un'interfaccia COM o una chiamata di funzione restituisce un buffer (stringa o altro) al client, il client è responsabile della liberazione della memoria chiamando CoTaskMemFree.
  • Ogni volta che un'interfaccia o una funzione COM richiede un buffer dal client, il client deve allocare tale buffer usando CoTaskMemAlloc e il chiamato deve liberarlo.

Assicurarsi di seguire queste regole quando si allocano stringhe o buffer passati a moniker asincroni e ricordarsi di liberare memoria restituita da moniker asincroni. Per informazioni dettagliate dettagliate, vedere Gestione dell'allocazione di memoria e argomenti correlati.

moniker asincroni