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 SDK的 SECURITY_ATTRIBUTES

备注

访问或释放 CSemaphore 对象,创建 CMultiLockCSingleLock 对象并调用其 锁定unlock 成员函数。

安全说明安全说明

在创建 CSemaphore 对象之后,使用 GetLastError 确保mutex不存在。如果mutex意外存在时,它可能指示同名的欺诈性处理强占并可能打算恶意使用mutex。在这种情况下,建议的值安全程序关闭处理和继续,就象在创建对象的一个失败。

要求

Header: afxmt.h

请参见

参考

CSemaphore Class

层次结构图

CMutex Class

CEvent 类

CMultiLock Class

CSingleLock Class