Método IVirtualProcessorRoot::EnsureAllTasksVisible
Faz com que os dados armazenados na hierarquia de memória de processadores individuais para ficar visível para todos os processadores no sistema. Verifique se ao redor completa de memória seja executada em todos os processadores antes que o método retorna.
virtual void EnsureAllTasksVisible(
_Inout_ IExecutionContext *pContext
) =0;
Parâmetros
- pContext
O contexto em que está sendo enviados atualmente por essa raiz virtual do processador.
Comentários
Você pode encontrar esse método útil quando você deseja sincronizar a desativação de uma raiz virtual do processador com a adição de novo trabalho no agendador. Por motivo de desempenho, você pode decidir adicionar itens de trabalho no agendador sem executar uma barreira de memória, o que significa que os itens de trabalho adicionados por um thread que executa em um processador não são imediatamente visíveis para todos processadores restantes. Com esse método junto com o método de Deactivate você pode garantir que o agendador não desativar todas as suas raízes virtuais do processador quando os itens de trabalho existentes nas coleções do agendador.
Uma chamada para o método de EnsureAllTasksVisibleThe deve originar-se de dentro do método de Dispatch do contexto de execução que a raiz virtual do processador foi ativado com. Ou seja o proxy do thread que invoca o método de EnsureAllTasksVisible deve ser o que está sendo executadas atualmente na raiz virtual do processador. Chame o método em uma raiz do processador virtual que não está sendo executado pode resultar em comportamento indefinido.
invalid_argument será lançada se o argumento pContext tem o valor NULL.
invalid_operation será lançada se a raiz virtual do processador foi ativada, nunca ou o argumento pContext não representa o contexto de execução que foi despachados recentemente por essa raiz virtual do processador.
Requisitos
Cabeçalho: concrtrm.h
Namespace: simultaneidade