共用方式為


CSemaphore::CSemaphore

建構具名或未命名的 CSemaphore 物件。

CSemaphore(
   LONG lInitialCount = 1,
   LONG lMaxCount = 1,
   LPCTSTR pstrName = NULL,
   LPSECURITY_ATTRIBUTES lpsaAttributes = NULL 
);

參數

  • lInitialCount
    號誌的初始使用計數。 的值必須大於或等於 0 並且小於或等於 lMaxCount。

  • lMaxCount
    號誌的最大使用計數。 必須大於 0。

  • pstrName
    號誌的名稱。 如果信號跨越處理序界限來存取,就必須提供。 如果 NULL, 物件將為未命名的。 如果名稱符合現有的號誌,建構函式會參考該名稱號誌的新 CSemaphore 物件。 如果名稱比對不是號誌的現有的同步物件,架構就會失敗。

  • lpsaAttributes
    號誌物件的安全性屬性。 如需此結構的完整說明,請參閱 Windows SDKSECURITY_ATTRIBUTES

備註

若要存取或釋放 CSemaphore 物件,建立 CMultiLockCSingleLock 物件並呼叫它的 鎖定解除鎖定 成員函式。

安全性注意事項安全性提示

在建立 CSemaphore 物件之後,請使用 GetLastError 確保 Mutex 不存在)。如果意外 Mutex 不存在,它可能會指出惡意處理序蹲可能是惡意地使用 Mutex。在這個案例中,建議的值安全性程序是關閉控制代碼和繼續,如同在建立物件的失敗。

需求

Header: afxmt.h

請參閱

參考

CSemaphore 類別

階層架構圖

CMutex 類別

CEvent 類別

CMultiLock 類別

CSingleLock 類別