Compartilhar via


Método IHostSyncManager::CreateSemaphore

Cria um objeto IHostSemaphore para o CLR (Common Language Runtime) a ser usado como semáforo para eventos de espera.

Sintaxe

HRESULT CreateSemaphore (  
    [in]  DWORD dwInitial,  
    [in]  DWORD dwMax,  
    [out] IHostSemaphore **ppSemaphore  
);  

Parâmetros

dwInitial
[in] A contagem inicial para ppSemaphore.

dwMax
[in] A contagem máxima para ppSemaphore.

ppSemaphore
[out] Um ponteiro para o endereço de uma instância IHostSemaphore, ou nulo se o semáforo não puder ser criado.

Valor Retornado

HRESULT Descrição
S_OK CreateSemaphore retornado com êxito.
HOST_E_CLRNOTAVAILABLE O CLR não foi carregado em um processo, ou o CLR está em um estado no qual não pode executar código gerenciado ou processar a chamada com êxito.
HOST_E_TIMEOUT Uma chamada atingiu o tempo limite.
HOST_E_NOT_OWNER O chamador não possui o bloqueio.
HOST_E_ABANDONED Um evento foi cancelado enquanto uma fibra ou um thread bloqueado estava esperando por ele.
E_FAIL Uma falha catastrófica desconhecida ocorreu. Quando um método retorna E_FAIL, o CLR não pode mais ser usado no processo. Chamadas subsequentes para métodos de hospedagem retornam HOST_E_CLRNOTAVAILABLE.
E_OUTOFMEMORY Não havia memória suficiente disponível para criar o objeto de evento solicitado.

Comentários

CreateSemaphore espelha a função Win32 que tem o mesmo nome. Os parâmetros dwInitiale dwMax usam a mesma semântica para a contagem de semáforos que os parâmetros Win32 lInitialCount e lMaximumCount, respectivamente. dwInitial deve estar entre zero e dwMax, inclusive. dwMax deve ser maior que zero.

Requisitos

Plataformas: confira Requisitos do sistema.

Cabeçalho: MSCorEE.h

Biblioteca: incluída como um recurso no MSCorEE.dll

Versões do .NET Framework: disponíveis desde 2.0

Confira também