Compartilhar via


Semaphore Objects

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Um sinal é um entre processos objeto sincronização que mantém uma contagem entre zero e um valor máximo.

O estado objeto está sinalizado quando sua contagem é maior que zero e não sinalizado quando sua contagem é zero.

Um sinal é usado como uma contagem de recurso portão, limitando o uso de um recurso por contagem segmentos à medida que elas transmitir in and out of o portão.

Cada tempo que um segmento em espera é liberado because of o sinalizado estado de um sinal, a contagem de um sinal é diminuído.

Use a função CreateSemaphore para criar um nomeado ou sem nome objeto do semáforo.

O identificador retornado por CreateSemaphore Pode ser usado em qualquer função que requer um identificador para o objeto do semáforo.

Qualquer segmento de uma processo de chamada pode especificar o semáforo identificador em um chamar para uma função de espera.

Use a função ReleaseSemaphore para incremento uma contagem do semáforo. A contagem nunca pode ser menor que zero ou maior que a contagem inicial especificada pelo lInitialCount parâmetro.

Antes um segmento usa o recurso, ele especifica o identificador do semáforo em um chamar para uma função de espera. Quando a função de espera retorna, ele diminui a contagem do semáforo e o segmento em espera é executado.

Quando um segmento termina usando um recurso, o segmento chama ReleaseSemaphore Para incremento a contagem do semáforo.

ReleaseSemaphore Também pode ser usado durante inicialização de um aplicativo.

O aplicativo pode criar um semáforo com uma contagem inicial do zero. Isso define o semáforo como não sinalizado e bloqueia todos os segmentos de acessar o recurso protegido.

Quando o aplicativo termina inicialização, ele usa ReleaseSemaphore Para aumentar a contagem para seu valor máximo e permite acessar normal para o recurso protegido.

Semáforos podem ser usados entre processos ou em um único processo.

Vários processos podem têm alças do mesmo objeto do semáforo. Isso fornece sincronização entre objetos. Sempre usar o CreateSemaphore função, como Windows Embedded CE não implementar o OpenSemaphore função.

Use a função CloseHandle para fechar o identificador. O sistema fecha o identificador quando termina o processo. Quando você fechar o último identificador para um sinal, o objeto do semáforo é destruído.

See Also

Concepts

Synchronization