Подскажите, плиз...
Есть, условно, код:
...
HANDLE h[2];
dwResult = WaitForMultipleObjects(2, &h[0], FALSE, 512);
...
У меня иногда происходит так, что после вызова функции возврат из нее происходит через 1-4 сек.
Причем, dwResult равен WAIT_OBJECT_x (сразу говорю, что не WAIT_FAILED или WAIT_TIMEOUT — это
все отлавливается).
Может ли быть такое в принципе, или у меня глюки. А то я целую неделю уже разбираюсь.
С уважением. Александр.
Здравствуйте, assm-spb, Вы писали:
AS>Есть, условно, код:
AS>AS>...
AS>HANDLE h[2];
AS>dwResult = WaitForMultipleObjects(2, &h[0], FALSE, 512);
AS>...
AS>
AS>У меня иногда происходит так, что после вызова функции возврат из нее происходит через 1-4 сек.
AS>Причем, dwResult равен WAIT_OBJECT_x (сразу говорю, что не WAIT_FAILED или WAIT_TIMEOUT — это
AS>все отлавливается).
Значит, он чего-то из содержимого массива h дождался

Другое дело, что ты не инициализируешь этот массив, и он содержит мусор

(судя по приведённому коду)
Пардон, стормозил.
Там полсекундный таймаут, а он просыпается через 1-4 секунды.
Может быть, в это время какой-то высокоприоритетный поток работал, поэтому твой поток перешёл из состояния "жду" не в "поехали", а только в "готов".