Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Асинхронная работа с файлами + обработка в устройстве

19K
25 октября 2008 года
Mhael
54 / / 20.03.2008
Наверняка многие программисты в свое время решали подобную задачу, но вот гуглю и пока ничего полезного не нахожу..
Ситуация:
Есть юсб-устройство в которое надо лить файл и из которого принимаю обработанный файл(этот же). Происходит это асинхронно и параллельно(вернее конечно псевдо-параллельно . Естественно файл надо откудова-то брать и куда-то записывать обработанный. Это тоже надо делать параллельно. Весьма остро стоит проблема минимизации требуемого времени.
Функции записи пакета в устройство выглядят прибл. так: ednp1.BeginXfer(..., &overlapped); ednp1.WaitXfer(..., &overlapped); ednp1.FinishXfer(..., &overlapped); Чтения аналогично, но будет ednp2 .
Проблема:
От меня хотят непрерывный поток. Т.е. если я сделаю не на последнем пакете ednp1.WaitXfer а потом не сделаю для следующего ednp1.BeginXfer, а попытаюсь сделать ednp2.WaitXfer, в устройстве происходит сбой и у меня вылетает исключение в библиотеке устройства. Читать целиком за один раз целый файл я естественно не могу — там и гигабайтные файлы могут быть.
Т.е. система: прочел из файла кусок — стал читать второй — в это время начал отправку куска — после отправки стал записывать обработанный первый кусок в файл — вместе с записью стал читать третий — стал отправлять второй вместе с чтением третьего и т.д. крайне неудобна, если вообще осуществима имхо.
Вопрос:
Кто делал подобное, посоветуйте путь решения. Может есть у кого отлаженные и прилизанные примеры, т.к. сейчас пробую другой вариант с несколькими потоками и синхронизацией по достижению некоторого количества считанных байт и код получается жутко запутанным и тяжеловесным..?
Проект в MFC.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог