InitializeCriticalSection 函式 (synchapi.h)
初始化重要區段物件。
語法
void InitializeCriticalSection(
[out] LPCRITICAL_SECTION lpCriticalSection
);
參數
[out] lpCriticalSection
重要區段物件的指標。
傳回值
此函式不會傳回值。
Windows Server 2003 和 Windows XP: 在記憶體不足的情況下, InitializeCriticalSection 可能會引發 STATUS_NO_MEMORY 例外狀況。 從 Windows Vista 開始,已排除此例外狀況, 而且 InitializeCriticalSection 一律會成功,即使記憶體不足的情況也一樣。
備註
單一進程的線程可以使用重要區段物件進行相互排除同步處理。 對於線程取得重要區段擁有權的順序並不保證,不過,系統會對所有線程都公平。
此程式負責配置重要區段物件所使用的記憶體,其方式是宣告類型 為 CRITICAL_SECTION的變數。 使用重要區段之前,進程的某些線程必須初始化 物件。
初始化重要區段對象之後,進程的線程可以在 EnterCriticalSection、TryEnterCriticalSection 或 LeaveCriticalSection 函式中指定物件,以提供共用資源的互斥存取權。 如需不同進程線程之間的類似同步處理,請使用 mutex 物件。
無法移動或複製重要區段物件。 此程式也不得修改物件,但必須將它視為邏輯不透明。 僅使用重要區段函式來管理重要區段物件。 當您完成使用關鍵區段時,請呼叫 DeleteCriticalSection 函式。
必須先刪除重要區段物件,才能重新初始化。 初始化已初始化的重要區段會導致未定義的行為。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | synchapi.h (Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008 Windows Server 2008 R2) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |