![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| idti |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 28.2.2009 Где: pnz Репутация: нет Всего: нет |
Вот код из документации, работает, но синхронно=( http://msdn.microsoft.com/en-us/library/aa365690(VS.85).aspx Вот тут возможные способы решения: http://support.microsoft.com/kb/156932 У кого-нибудь работает этот код асинхронно?
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 7 Всего: 459 |
Так он работает асинхронно, просто дожидается конца операции. В тестовом примере нет других задач на которые можно было бы переключиться. Можно по таймеру вызывать bResult = GetOverlappedResult( и проверять окончание операции. Тут же проверка идет в бесконечном цикле, фактически синхронная операция делается через асинхронную. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| idti |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 28.2.2009 Где: pnz Репутация: нет Всего: нет |
Если бы он работал асинхронно выводились бы соответствующие сообщения. А выводятся сообщения соответствующие синхронному сценарию.
А как же:
Код сюда вообще не переходит.
Если имеется ввиду проверка GetOverlappedResult, то в этом и проблема, код выполняется вот по этому сценарию:
Т. е. ReadFile не возвращает управление. ReadFile не возвращает ошибку с флагом Ожидание_ВводаВывода. Вместо этого он сразу возвращает результат. И в коментарии этой ветки кода написано, что такое состояние может быть вызвано кешированием после первого чтения, но и при первом чтении не работает. |
||||||||
|
|||||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
А что именно вы пытались асинхронно читать? Если это обычный файл, то для него это может и не работать. Нужно почитать что нибудь из каких нибудь коммуникационных каналов, для них должно работать
|
|||
|
||||
| idti |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 28.2.2009 Где: pnz Репутация: нет Всего: нет |
||||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Читать тут (с главы Asynchronous I/O Still Appears to be Synchronous)
|
||||
|
|||||
| idti |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 28.2.2009 Где: pnz Репутация: нет Всего: нет |
Спасибо, это ссылка из моего первого поста, я там читал все. Там не написано про коммуникационный каналы, с чего Вы взяли? Com порта нет=(, да и писать в него нечего. А pipe это что? Это разве не любой коммуникационный канал | - типа труба. |
|||
|
||||
| xvr |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
Ну и?
PS. В оригинальном исходнике в строке 231 ошибка: FILE_FLAG_OVERLAPPED & FILE_FLAG_NO_BUFFERING а должно быть FILE_FLAG_OVERLAPPED | FILE_FLAG_NO_BUFFERING Это сообщение отредактировал(а) xvr - 12.4.2010, 22:36 |
||||||||
|
|||||||||
| idti |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 28.2.2009 Где: pnz Репутация: нет Всего: нет |
Так это что, типа виртуальный канал? Поищу. Неа, все проблемы которые там описаны у меня отсутствуют.
Точно. Я знаю, это, к сожалению, ничего не меняет. Добавлено через 9 минут и 27 секунд А нет меняет=) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |