На главную

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 | Скачать Вниз

Waiting for Multiple Objects



The following example uses the CreateEvent function to create two event objects. It then uses the WaitForMultipleObjects function to wait for the state of one of the objects to be set to signaled.

HANDLE hEvents[2];
DWORD i, dwEvent;

// Create two event objects.

for (i = 0; i < 2; i++)
{
hEvents[i] = CreateEvent(
NULL, // no security attributes
FALSE, // auto-reset event object
FALSE, // initial state is nonsignaled
NULL); // unnamed object
if (hEvents[i] == NULL) {
printf("CreateEvent error: %d\n", GetLastError() );
ExitProcess(0);
}
}

// The creating thread waits for other threads or processes

// to signal the event objects.

dwEvent = WaitForMultipleObjects(
2, // number of objects in array
hEvents, // array of objects
FALSE, // wait for any
INFINITE); // indefinite wait

// Return value indicates which event is signaled.

switch (dwEvent) {

// hEvent[0] was signaled.
case WAIT_OBJECT_0 + 0:
// Perform tasks required by this event.
break;

// hEvent[1] was signaled.
case WAIT_OBJECT_0 + 1:

// Perform tasks required by this event.
break;

// Return value is invalid.
default:
printf("Wait error: %d\n", GetLastError());
ExitProcess(0);
}



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

Ожидание Многочисленных Объектов



Следующий пример использует функцию CreateEvent, чтобы создавать два объекта случая. Это затем использует функцию WaitForMultipleObjects, чтобы ждать состояние одного из объектов против установлен на сигнализированное.

ПРООПЕРИРУЙТЕ hEvents[2];
DWORD Я, dwEvent;

// Создайте два объекта случая.

для (i = 0; я < 2; я++)
{
hEvents[i] = CreateEvent( НЕДЕЙСТВИТЕЛЬНАЯ, // никакая безопасность не приписывает ЛОЖЬ, // авто-восстановившее объектную ЛОЖЬ случая, // начальное состояние nonsignaled НЕДЕЙСТВИТЕЛЬНЫЙ); // безымянный объект если (hEvents[i] == НЕДЕЙСТВИТЕЛЬНЫЙ) { printf(ошибка "CreateEvent: %d\n", GetLastError() );
ExitProcess(0);
}
}

// Создание резьбы ждет другую резьбу или процессы

//, чтобы сигнализировать объекты случая.

dwEvent = WaitForMultipleObjects( 2, // Количество объектов в массиве hEvents, // массив ЛЖИ объектов, // ожидание любой БЕСКОНЕЧНЫЙ); // неопределенное ожидание

// Величина Возврата указывается, какой случай сигнализирован.

ключ (dwEvent) {

// hEvent[0] Был Сигнализирован.
случай WAIT_OBJECT_0 + 0: // Выполнять задачи требовавшиеся этим случаем.
прерывание;

// hEvent[1] Был Сигнализирован.
случай WAIT_OBJECT_0 + 1:

// Выполните задачи требовавшиеся этим случаем.
прерывание;

// Величина Возврата недействительна.
невыполнение:
printf(ошибка "Wait: %d\n", GetLastError());
ExitProcess(0);
}



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