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 |