WaitForSingleObject не истекает - C ++ - PullRequest
0 голосов
/ 13 декабря 2010

Моё консольное приложение вызывает WaitForSingleObject в родительском потоке со значением времени ожидания 5 секунд.

dwObjectWaitState = ::WaitForSingleObject( s_hRxDataEvent, 50000L );

После настройки физической среды (т.е. без изменения кода), чтобы событие никогда не передавалось, я установил точку останова на следующей строке и запустил приложение. ПК никогда не достигает точки останова. s_hRxDataEvent - допустимый дескриптор события, который обычно устанавливается в дочернем потоке. Приложение прекрасно работает, когда физическая среда настроена должным образом. Почему время ожидания не истекло? Спасибо.

Ответы [ 4 ]

2 голосов
/ 13 декабря 2010

Тайм-аут в миллисекундах.50000 - это 50 секунд, а не 5 секунд.

1 голос
/ 13 декабря 2010

Значение времени ожидания для WaitForSingleObject указано в миллисекундах, поэтому 50000L означает 50 секунд, а не 5 секунд.

1 голос
/ 13 декабря 2010

50000L миллисекунд = 50 секунд.

1 голос
/ 13 декабря 2010

Обратите внимание, что у вас есть дополнительный ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...