[an error occurred while processing this directive]
|
Зависание скорее всего происходит при чтении - Вы хотите читать говорите readfile() - в эту процедуру программа входит - а вот оттуда никогда не выходит! :). Пока ваше устройство данные не выдаст.
Если подробнее - так:
1.Да хост опрашивает ваше устройство точнее точку USB - и если вы в нее ничего не положили - хост думает что и нету ничего.
2.Хост почемутоникогда не пристает к устройству с вопросом дай репорт. Хотя такой запрос в классе описан. Видимо драйверописатели так решили - типа устройство не теребить понапрасну.
3. Посему Вы сами должны эту проблему решать - т.е. впадать в чтение только тогда когда уверены что устройство даст данные - получается пакетный обмен - Вы ему вопрос (устройству) оно Вам ответ.
У меня для чтения отдельный поток в программе и если после моего вопроса устройство не ответило через 1 сек - я поток закрываю и все безболезненно и без зависания программы.
E-mail: info@telesys.ru