Método de IVirtualProcessorRoot::EnsureAllTasksVisible
Faz com que dados armazenados na hierarquia de memória processadores individuais se tornam visíveis para todos os processadores no sistema.Ele garante que um limite de memória completo foi executado em todos os processadores antes que o método retorna.
virtual void EnsureAllTasksVisible(
_Inout_ IExecutionContext *pContext
) =0;
Parâmetros
- pContext
O contexto que está atualmente sendo despachado por esta raiz processador virtual.
Comentários
Você pode achar útil esse método quando você deseja sincronizar a desativação de uma raiz virtual do processador com a adição do novo trabalho no Agendador.Por motivos de desempenho, você decidir adicionar itens de trabalho para o Agendador sem executar uma barreira de memória, o que significa que os itens de trabalho adicionados por um thread em execução em um processador não são imediatamente visíveis para todos os outros processadores.Usando esse método em conjunto com o Deactivate método pode garantir que o Agendador não desativar todos os seu processador virtual raízes enquanto os itens de trabalho existem em coleções do Agendador.
Uma chamada para o EnsureAllTasksVisibleThe deve originar-se de dentro do método de Dispatch método de contexto de execução a raiz virtual processador última ativação com.Em outras palavras, o proxy thread chamando o EnsureAllTasksVisible método deve ser aquele que está sendo executado na raiz do processador virtual.Chamar o método em uma raiz de processador virtual que não está executando pode resultar em comportamento indefinido.
invalid_argumenté lançada se o argumento pContext tem o valor NULL.
invalid_operationé lançada se a raiz virtual do processador nunca foi ativada, ou o argumento pContext não representa o contexto de execução que recentemente foi despachado pela raiz processador virtual.
Requisitos
Cabeçalho: concrtrm.h
Namespace: concorrência