Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Так и есть. 10.05.14 05:16 Число просмотров: 3910
Автор: Zef <Alloo Zef> Статус: Elderman Отредактировано 10.05.14 05:18 Количество правок: 1
|
Проблема, видимо, вообще втом, что ReadFile применительно к СОМ-поту может быть только синхронным. До поступления заказанного количества байт он лочится где-тв ядре и прервать его евентами юзермода не возможно. Цепочка:
SetCommMask(hSerial,EV_RXCHAR)
WaitCommEvent(hSerial, &state, &m_OvrLapped);
dwEvent = WaitForMultipleObjects(2, hEvent, false, INFINITE);
Вытаскивает процесс ожидания данных в юзермод, где он может быть прерван.
А вот "сладкая парочка"
ReadFile(hSerial, (char*)&sReceived, 1, &iSize, &m_OvrLapped);
WaitForSingleObject(hEvent[1],INFINITE);
все равно прервана быть не может, но с уже поступившими данными заканчивается быстро.
Правда, это только догадки чисто дедуктивного типа. В ядро я не лазал.
|
|
|