Modello di pull dei dati e modello di push dati
Un client di un moniker asincrono può scegliere tra un modello di pull dati e di push dati per guidare un'operazione IMoniker::BindTo Archiviazione asincrona 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 di 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, vedere Gestione dell'allocazione di memoria e argomenti correlati.
Argomenti correlati