Partager via


Synchronisation des rappels

L’API WinInet asynchrone (utilisée pour les protocoles les plus courants) laisse la synchronisation du mécanisme de rappel et de l’application appelante comme exercice pour le client. Cela est intentionnel, car il offre le plus grand degré de flexibilité. Les protocoles par défaut et l’implémentation du moniker d’URL effectuent cette synchronisation et garantissent que les applications monothread et interthreads n’ont jamais à gérer la contention de type thread libre. Autrement dit, les interfaces IEnumFORMATETC et IBindStatusCallback du client sont appelées uniquement sur leurs threads appropriés. Cette fonctionnalité est transparente pour l’utilisateur de l’URL mMoniker tant que chaque thread qui appelle IMoniker::BindToStorage et IMoniker::BindToObject a une file d’attente de messages.

La spécification de moniker asynchrone nécessite un contrôle plus précis sur la hiérarchisation et la gestion des téléchargements que ce qui est autorisé par WinSock ou WinInet. Par conséquent, un moniker d’URL gère tous les téléchargements pour un thread d’appelant donné, en utilisant (dans le cadre de sa synchronisation) un schéma de priorité basé sur la spécification IBinding .

Monikers d’URL