Condividi tramite


Metodo IHostSyncManager::CreateSemaphore

Crea un oggetto IHostSemaphore che Common Language Runtime utilizza come semaforo per gli eventi di attesa.

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

Parametri

  • dwInitial
    [in] Conteggio iniziale per ppSemaphore.

  • dwMax
    [in] Conteggio massimo per ppSemaphore.

  • ppSemaphore
    [out] Puntatore all'indirizzo di un'istanza di IHostSemaphore oppure null se non è stato possibile creare il semaforo.

Valore restituito

HRESULT

Oggetto di descrizione

S_OK

CreateSemaphore ha restituito correttamente un valore.

HOST_E_CLRNOTAVAILABLE

Common Language Runtime non è stato caricato in un processo oppure si trova in uno stato in cui non è possibile eseguire codice gestito né elaborare correttamente la chiamata.

HOST_E_TIMEOUT

Timeout della chiamata.

HOST_E_NOT_OWNER

Il chiamante non è il proprietario del blocco.

HOST_E_ABANDONED

Un evento è stato annullato mentre un thread o un fiber bloccato era in attesa di tale evento.

E_FAIL

Si è verificato un errore irreversibile sconosciuto. Se un metodo restituisce E_FAIL, CLR non sarà più utilizzabile all'interno del processo. Le successive chiamate ai metodi di hosting restituiranno HOST_E_CLRNOTAVAILABLE.

E_OUTOFMEMORY

Memoria insufficiente per la creazione dell'oggetto evento richiesto.

Note

CreateSemaphore si comporta in modo identico alla funzione Win32 con lo stesso nome. Per il conteggio del semaforo, i parametri dwInitial e dwMax utilizzano la stessa semantica dei parametri Win32 lInitialCount e lMaximumCount, rispettivamente. dwInitial deve essere compreso tra zero e dwMax, inclusi. dwMax deve essere maggiore di zero.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: MSCorEE.h

Libreria: inclusa come risorsa in MSCorEE.dll

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICLRSyncManager

Interfaccia IHostSemaphore

Interfaccia IHostSyncManager