ReleaseSemaphore
9/8/2008
Essa função aumenta a contagem do objeto semáforo especificado uma quantidade especificada.
Syntax
BOOL ReleaseSemaphore(
HANDLE hSemaphore,
LONG lReleaseCount,
LPLONG lpPreviousCount
);
Parameters
- hSemaphore
[no] Identificador para o objeto do semáforo. A função CreateSemaphore retorna esse identificador.
- lReleaseCount
[no] Especifica a quantidade pela qual a atual contagem do objeto do semáforo está para ser aumentado. O valor deve ser maior que zero. Se a quantidade especificada poderia causar a contagem do semáforo de exceder o contagem máxima que foi especificado quando o semáforo foi criado, a contagem não será alterada e a função retorna FALSE.
- lpPreviousCount
[out] Ponteiro longo para um 32-bit variável para receber a contagem anterior para o sinal. Este parâmetro pode ser NULL se a contagem anterior não for exigido.
Return Value
Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.
Remarks
O estado de um objeto do semáforo está sinalizado quando sua contagem é maior que zero e não sinalizado quando sua contagem é igual a zero. O processo que chama o CreateSemaphore função especifica contagem inicial do semáforo. Cada tempo um segmento em espera é liberado because of sinalizado do semáforo de estado, a contagem do sinal é reduzido por um.
Geralmente, um aplicativo utiliza um sinal para limite o número de segmentos usando um recurso. Antes um segmento usa o recurso, ele especifica o identificador do semáforo em um chamar a uma das funções de espera. Quando a função de espera retorna, ele diminui contagem do semáforo por um. Quando tiver terminado o segmento usando o recurso, ele chama ReleaseSemaphore Para aumentar contagem do semáforo um.
Outro uso de ReleaseSemaphore é durante inicialização de um aplicativo. O aplicativo pode criar um semáforo com uma contagem inicial do zero. Isso define estado do semáforo de como não sinalizado e bloqueia todos os segmentos de acessar o recurso protegido. Quando o aplicativo termina sua inicialização, ele usa ReleaseSemaphore Para aumentar a contagem para seu valor máximo para permitir acessar normal para o recurso protegido.
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. Esvaziar seqüências de caracteres, " ", são tratados como nomeado objetos. Em plataformas com base em Área de trabalho Windows, sincronização objetos todos compartilhar o mesmo namespace.
Requirements
Header | winbase.h |
Library | coredll.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |