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 en tant qu’exercice pour le client. Cette opération est intentionnelle car elle 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 à thread unique et à thread cloisonné n’ont jamais à gérer la contention de style 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 du moniker asynchrone requiert un contrôle plus précis de la définition des priorités et de la gestion des téléchargements que ce qui est autorisé par WinSock ou WinInet. En conséquence, un moniker d’URL gère tous les téléchargements pour tout thread appelant donné, en utilisant (dans le cadre de sa synchronisation) un schéma de priorité basé sur la spécification IBinding .

Monikers d’URL