Compartilhar via


Sincronização de retorno de chamada

A API WinInet assíncrona (usada para os protocolos mais comuns) deixa a sincronização do mecanismo de retorno de chamada e do aplicativo de chamada como um exercício para o cliente. Isso é intencional porque permite o maior grau de flexibilidade. Os protocolos padrão e a implementação de moniker de URL executam essa sincronização e garantem que os aplicativos de thread único e de thread de apartamento nunca precisem lidar com contenção de thread livre. Ou seja, as interfaces IEnumFORMATETC e IBindStatusCallback do cliente são chamadas somente em seus threads apropriados. Esse recurso é transparente para o usuário da URL mMoniker, desde que cada thread que chama IMoniker::BindToStorage e IMoniker::BindToObject tenha uma fila de mensagens.

A especificação de moniker assíncrono requer um controle mais preciso sobre a priorização e o gerenciamento de downloads do que é permitido pelo WinSock ou WinInet. Assim, um moniker de URL gerencia todos os downloads para o thread de qualquer chamador, usando (como parte de sua sincronização) um esquema de prioridade baseado na especificação IBinding.

URL Monikers