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 vengono chiamate solo sui thread appropriati. Questa funzionalità è trasparente per l'utente dell'URL mMoniker, purché ogni thread che chiama IMoniker::BindToStorage e IMoniker::BindToObject abbia 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.
Argomenti correlati