На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

ReleaseSemaphore



The ReleaseSemaphore function increases the count of the specified semaphore object by a specified amount.

BOOL ReleaseSemaphore(

HANDLE hSemaphore, // handle of the semaphore object
LONG lReleaseCount, // amount to add to current count
LPLONG lpPreviousCount // address of previous count
);


Parameters

hSemaphore

Identifies the semaphore object. The CreateSemaphore or OpenSemaphore function returns this handle.
Windows NT: This handle must have SEMAPHORE_MODIFY_STATE access. For more information, see Interprocess Synchronization Objects.

lReleaseCount

Specifies the amount by which the semaphore object's current count is to be increased. The value must be greater than zero. If the specified amount would cause the semaphore's count to exceed the maximum count that was specified when the semaphore was created, the count is not changed and the function returns FALSE.

lpPreviousCount

Points to a 32-bit variable to receive the previous count for the semaphore. This parameter can be NULL if the previous count is not required.



Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

The state of a semaphore object is signaled when its count is greater than zero and nonsignaled when its count is equal to zero. The process that calls the CreateSemaphore function specifies the semaphore's initial count. Each time a waiting thread is released because of the semaphore's signaled state, the count of the semaphore is decreased by one.
Typically, an application uses a semaphore to limit the number of threads using a resource. Before a thread uses the resource, it specifies the semaphore handle in a call to one of the wait functions. When the wait function returns, it decreases the semaphore's count by one. When the thread has finished using the resource, it calls ReleaseSemaphore to increase the semaphore's count by one.

Another use of ReleaseSemaphore is during an application's initialization. The application can create a semaphore with an initial count of zero. This sets the semaphore's state to nonsignaled and blocks all threads from accessing the protected resource. When the application finishes its initialization, it uses ReleaseSemaphore to increase the count to its maximum value, to permit normal access to the protected resource.

See Also

CreateSemaphore, OpenSemaphore




Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

ReleaseSemaphore



Функция ReleaseSemaphore увеличивает счет определенного объекта семафора определенной суммой.

BOOL ReleaseSemaphore(

РУЧКА hSemaphore, // ручка семафора возражают ДОЛГО (ДЛИНОЙ) lReleaseCount, // объем добавляет к текущему адресу счета LPLONG lpPreviousCount // предшествующего счета
);


Параметры

hSemaphore

Идентифицирует объект семафора. CreateSemaphore Или функциональный возврат OpenSemaphore этой ручки.
Окно NT: Эта ручка должна иметь доступ SEMAPHORE_MODIFY_STATE. Более подробно, смотри Межпроцессовые Объекты Синхронизации.

lReleaseCount

Определяет сумму, которой объектный текущий счет семафора должен быть возрасти. Величина должна быть больше, чем нуль. Если определенная сумма должна заставлять счет семафора, чтобы превышать максимальный счет, который был определен когда семафор был создан, счет не измениться и функция возвращает ЛОЖЬ.

lpPreviousCount

Точки на 32- битовую переменную, чтобы получать предшествующий иметь значение семафор. Этот параметр может быть НЕДЕЙСТВИТЕЛЕН если предшествующий счет не потребовался.



Обратные Величины

Если функция добивается успеха, обратная величина ненулевая.
Если функция терпит неудачу, обратная величина нулевая. Для того, чтобы расширять информацию ошибки, назовите GetLastError.

Замечания

Состояние объекта семафора сигнализировано когда счет больше, чем нуль и nonsignaled когда счет равняется нулю. Процесс, который называет функцию CreateSemaphore определяет начальный счет семафора. Всякий раз, когда ждущая резьба выпущена из-за сигнализировать сигнальное состояние, счет семафора уменьшен одним.
Обычно, приложение использует семафор, чтобы ограничивать количество резьбы, использовавшей ресурс. Прежде, чем резьба использует ресурс, она определяет ручку семафора на вызове в одну из функций ожидания. Когда функция ожидания возвращается, она уменьшает счет семафора одним. Когда резьба завершила используя ресурс, она называет ReleaseSemaphore, чтобы увеличивать счет семафора одним.

Другое использование ReleaseSemaphore - в течение прикладной инициализации. Приложение может создать семафор с начальным счетом нуля. Это устанавливает состояние семафора на nonsignaled и блокирует всю резьбу из доступа защищенного ресурса. Когда приложение завершает свою инициализацию, оно использует ReleaseSemaphore, чтобы увеличивать счет в свою максимальную величину, чтобы разрешать нормальный доступ к защищенному ресурсу.

Смотри Также

CreateSemaphore, OpenSemaphore




Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz