Condividi tramite


Funzione InitializeCriticalSection (synchapi.h)

Inizializza un oggetto sezione critica.

Sintassi

void InitializeCriticalSection(
  [out] LPCRITICAL_SECTION lpCriticalSection
);

Parametri

[out] lpCriticalSection

Puntatore all'oggetto sezione critica.

Valore restituito

Questa funzione non restituisce un valore.

Windows Server 2003 e Windows XP: In situazioni di memoria insufficiente, InitializeCriticalSection può generare un'eccezione STATUS_NO_MEMORY . A partire da Windows Vista, questa eccezione è stata eliminata e InitializeCriticalSection ha sempre esito positivo, anche in situazioni di memoria ridotta.

Commenti

I thread di un singolo processo possono usare un oggetto di sezione critico per la sincronizzazione reciproca dell'esclusione. Non esiste alcuna garanzia sull'ordine in cui i thread otterranno la proprietà della sezione critica, tuttavia, il sistema sarà equo per tutti i thread.

Il processo è responsabile dell'allocazione della memoria utilizzata da un oggetto sezione critica, che può eseguire dichiarando una variabile di tipo CRITICAL_SECTION. Prima di usare una sezione critica, alcuni thread del processo devono inizializzare l'oggetto.

Dopo l'inizializzazione di un oggetto di sezione critica, i thread del processo possono specificare l'oggetto nella funzione EnterCriticalSection, TryEnterCriticalSection o LeaveCriticalSection per fornire l'accesso reciproco esclusivo a una risorsa condivisa. Per una sincronizzazione simile tra i thread di processi diversi, usare un oggetto mutex.

Impossibile spostare o copiare un oggetto di sezione critica. Il processo non deve anche modificare l'oggetto, ma deve considerarlo come logicamente opaco. Usare solo le funzioni di sezione critiche per gestire gli oggetti di sezione critici. Al termine dell'uso della sezione critica, chiamare la funzione DeleteCriticalSection .

Un oggetto sezione critica deve essere eliminato prima di poter essere reinizializzato. Inizializzazione di una sezione critica che è già stata inizializzata comporta un comportamento non definito.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione synchapi.h (includere Windows.h in Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

CreateMutex

Oggetti sezione critica

DeleteCriticalSection

EnterCriticalSection

InitializeCriticalSectionAndSpinCount

LeaveCriticalSection

Funzioni di sincronizzazione

TryEnterCriticalSection

API Vertdll disponibili nelle enclave VBS