Compartilhar via


Interprocess Synchronization

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Troca casual todos evitar processos de dados. No entanto, ocasionalmente, dois processos talvez precise se comunicar entre si. É um método que permite que processos para se comunicar chamado entre processos sincronização.

Porque processa múltiplo pode ter alças para o mesmo objeto evento ou mutex, esses objetos podem ser usados para realizar entre processos sincronização.

O processo que cria um objeto pode usar o identificador retornado pelo CreateEvent ou a função CreateMutex.

Outros processos podem aberto um identificador para o objeto usando o nome objeto no outro chamar para o CreateEvent Ou CreateMutex funções.

Objetos nomeados fornecem uma maneira para os processos para compartilhar objeto alças.

O nome especificado pelo processo de criação está limitado para o número de caracteres que são definidos pelo MAX_PATH. Ele pode incluir qualquer caractere exceto o caminho barra invertida (\)-caractere separador.

Depois que um processo cria um nomeado evento ou objeto mutex, outros processos podem usar o nome para chamar o apropriado função, ambos CreateEvent Ou CreateMutex, para aberto um identificador para o objeto.

Comparação nome é com diferenciação de maiúsculas e minúsculas.

Cada tipo objeto, such as memória mapas, semáforos, eventos, mensagem filas, exclusões mútuas e timers de monitoração, tem sua própria separar espaço para nome. Seqüências de caracteres vazia (" ") são tratados como nomeado objetos. Em plataformas com base em Área de trabalho Windows, sincronização objetos todos compartilhar o mesmo namespace.

O seguinte exemplo de código mostra como usar nomes objeto Criando e abrindo nomeado objetos. A primeira usa processo CreateMutex Para criar o objeto mutex. A função tiver êxito, mesmo se um objeto existente tiver o mesmo nome.

HANDLE MakeMyMutex (void)
{
   HANDLE hMutex;
   hMutex = CreateMutex
   (
      NULL, // No security attributes
      FALSE, // Initially not owned
      TEXT("MutexToProtectDatabase")); // Name of mutex object
      if (NULL == hMutex)
      {
         // Your code to deal with the error goes here.
      }
   return hMutex;
   }
}

See Also

Concepts

Synchronization