Suportando tarefas de sincronização simultâneas
O Estrutura de sincronização permite que os usuários criem provedores que podem dar suporte a tarefas de sincronização simultâneas. Porém, ele não dá suporte a sincronização paralela usando o mesmo objeto de sessão. Para desenvolver um provedor habilitado por sincronização simultâneo, use estas diretrizes:
O provedor deve fornecer proteções para bloquear e desbloquear o conhecimento durante chamadas.
O conhecimento deve ser clonado para permitir que o Estrutura de sincronização combine-o de um thread diferente. Para clonar logicamente um objeto de conhecimento, siga estas etapas antes de retornar um objeto de conhecimento para o Estrutura de sincronização:
Crie um novo objeto de conhecimento.
Defina a contagem em escala local como 1.
Combine o conhecimento existente com esse novo objeto usando ISyncKnowledge::Union.
Passe o conhecimento clonado para o Estrutura de sincronização.
Dica
Para aplicativos multithread, o Estrutura de sincronização requer que provedores sejam compatíveis com o apartamento no qual o objeto ISyncSession está sendo executado. Essa restrição também se aplica a todos os objetos passados para o Estrutura de sincronização, como versões, conhecimento etc.