[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: По моему в DDK-шный не доработан
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено stainwood 29 апреля 2002 г. 19:53
В ответ на: А те что в DDK-2000 чем не устраивают? отправлено DDK 29 апреля 2002 г. 16:35


По моему в DDK-шном (Win2K) не доработан механизм асинхронной записи/чтения, или я чего-то не понимаю. В DDK98 он вообще отсутствует напрочь.

Например, читаю данные от устройства в отдельном потоке:

...

bResult = ReadFile(hPipe, ........, &overlappedRead)
if (!bResult)
{
if (GetLastError() == ERROR_IO_PENDING)
{
GetOverlappedResult(hPipe, &overlappedRead, &dwRead,
TRUE);
}
}

...

Пока данные от устройства льются, все ок. Но стоит только
ему заткнуться - поток блокируется на GetOverlappedResult и
убить его нет никакой возможности, даже TerminateThread
бессилен :(

CancelIo(hPipe) не помогает.



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru