|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Event Objects
An event object is a synchronization object whose state can be explicitly set to signaled by use of the SetEvent or PulseEvent function. Following are the two types of event object.
Object Description Manual-reset event An event object whose state remains signaled until it is explicitly reset to nonsignaled by the ResetEvent function. While it is signaled, any number of waiting threads, or threads that subsequently specify the same event object in one of the wait functions, can be released. Auto-reset event An event object whose state remains signaled until a single waiting thread is released, at which time the system automatically sets the state to nonsignaled. If no threads are waiting, the event object's state remains signaled.
The event object is useful in sending a signal to a thread indicating that a particular event has occurred. For example, in overlapped input and output, the system sets a specified event object to the signaled state when the overlapped operation has been completed. A single thread can specify different event objects in several simultaneous overlapped operations, then use one of the multiple-object wait functions to wait for the state of any one of the event objects to be signaled.
A thread uses the CreateEvent function to create an event object. The creating thread specifies the initial state of the object and whether it is a manual-reset or auto-reset event object. The creating thread can also specify a name for the event object. Threads in other processes can open a handle of an existing event object by specifying its name in a call to the OpenEvent function. For additional information about names for mutex, event, semaphore, and timer objects, see Interprocess Synchronization.
A thread can use the PulseEvent function to set the state of an event object to signaled and then reset it to nonsignaled after releasing the appropriate number of waiting threads. For a manual-reset event object, all waiting threads are released. For an auto-reset event object, the function releases only a single waiting thread, even if multiple threads are waiting. If no threads are waiting, PulseEvent simply sets the state of the event object to nonsignaled and returns.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Объекты Случая
Объект случая - объект синхронизации чье состояние может явно быть установлено на сигнализированное использованием SetEvent или функция PulseEvent. Следующее - два типа случая возражают.
Описание Объекта Руководство-было восстановлено случай объект случая чьи государственные остатки сигнализировали пока он явно не восстановлен на nonsignaled функцией ResetEvent. Пока сигнализировано, любой номер ожидания заправляет, или заправляет, что впоследствии определяет тот же объект случая в одной из функций ожидания, может быть выпущено. Авто-восстановившее случай объект случая чьи государственные остатки сигнализированные пока единственное ожидание резьбы не будет выпущено, в котором время система автоматически устанавливает состояние на nonsignaled. Если никакая резьба не ожидается, объектные государственные остатки случая сигнализировали.
Объект случая полезный в посылке сигнала в резьбу, указывающую, что конкретный случай произошел. Например, в перекрытом вкладе и выходе, система устанавливает определенный объект случая против сигнального состояния когда перекрытое действие завершено. Единственная резьба может определить другие объекты случая в нескольких одновременных перекрытых действиях затем использовать одну из многочисленных-объектных функций ожидания, чтобы ждать состояние любого из объектов случая против сигнализирован.
Резьба использует функцию CreateEvent, чтобы создавать объект случая. Создание резьбы определяет начальное состояние объекта и независимо это - руководство-восстановленное или авто-восстановившее объект случая. Создание резьбы может также определить называть в честь объекта случая. Резьба в других процессах может открыть ручку существующего объекта случая определяя имя на вызове в функцию OpenEvent. Для дополнительной информации о называет в честь mutex, событие, семафор, и таймерные объекты, смотри Межпроцессовую Синхронизацию.
Резьба может использовать функцию PulseEvent, чтобы устанавливать состояние объекта события против сигнального и затем восстановившее это на nonsignaled после того, как освобождение подходящего номера ожидания заправится. Для руководства-восстановившего объект события, все ожидание резьбы выпущено. Для авто-восстановившее объект события, функциональные версии только единственное ожидание резьбы, даже если бы многочисленная резьба ожидается. Если никакая резьба не ожидает, PulseEvent просто устанавливает состояние объекта события против nonsignaled и возвращает.
|
|
|
|
| |