Condividi tramite


Sincronizzazione del callback

L'API WinInet asincrona (usata per i protocolli più comuni) lascia la sincronizzazione del meccanismo di callback e l'applicazione chiamante come esercizio per il client. Questo è intenzionale perché consente il massimo grado di flessibilità. I protocolli predefiniti e l'implementazione del moniker URL eseguono questa sincronizzazione e garantiscono che le applicazioni a thread singolo e a thread singolo non devono mai gestire conflitti in stile thread libero. Ovvero, le interfacce IEnumFORMATETC e IBindStatusCallback del client vengono chiamate solo sui thread appropriati. Questa funzionalità è trasparente per l'utente dell'URL mMoniker purché ogni thread che chiama IMoniker::BindTo Archiviazione e IMoniker::BindToObject disponga di una coda di messaggi.

La specifica del moniker asincrono richiede un controllo più preciso sulla definizione delle priorità e sulla gestione dei download rispetto a quanto consentito da WinSock o WinInet. Di conseguenza, un moniker URL gestisce tutti i download per qualsiasi thread del chiamante specifico, usando (come parte della sincronizzazione) uno schema di priorità basato sulla specifica IBinding.

Moniker URL