Поделиться через


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
    Атрибуты безопасности для объекта семафора.Полное описание структуры, см. в разделе SECURITY_ATTRIBUTES в Windows SDK.

Заметки

Чтобы получить доступ и освобождение объект CSemaphore создайте объект CMultiLock или CSingleLock и вызовите его блокировка и функции-члены Unlock.

Примечание о безопасностиПримечание по безопасности

После создания объекта CSemaphore, используйте GetLastError обеспечить мьютекс уже не существовало.Если мьютекс существовали неожиданно, они могут указывать на то, что процесс жулика находится на корточках и может использовать предназначать мьютекс злоумышленно.В этом случае рекомендуется безопасность- сознательная процедуры закрыть дескриптор и возобновлять если произошел сбой при создании объекта.

Требования

Header: afxmt.h

См. также

Ссылки

Класс CSemaphore

Диаграмма иерархии

Класс CMutex

Класс CEvent

Класс CMultiLock

Класс CSingleLock