![]() |
Помогите с Асинхронным вводом на C++
народ помогите пожалуйста раздуплиться а асинхронным вводом на С++.Очень нада!
И не надо посылать меня в гугл,я там уже был,там нет той инфы которая мне нада. Пытаюсь записать на дискету информацию в файл,но она записуеться синхронно.Что я делаю неправильно? код: Код:
void __fastcall TForm1::Button1Click(TObject *Sender) |
на флешки и флопики насколько помню не дает писать асинхронно. проверь запись большого файла на диск C:\ например.
Тут только создать поток записи вручную вариант прокатит. Хотя может что изменилось за то время, када я этим баловался. |
Цитата:
Цитата:
|
Ну ждемс проверки записи на винч. Если не норм - значит косяк в коде. Если норм - значит тоже самое у меня было.
И да, в коде нету задания смещения в структуре overlapped. Насколько помню должна быть. This member is nonzero only when performing I/O requests on a seeking device that supports the concept of an offset (also referred to as a file pointer mechanism), such as a file. Otherwise, this member must be zero. А вот то, о чем я говорил. Я делал программу которая пишет большой файл в 20 кусков, т.е. если 20 метров файл, то я 20 раз стартую запись по метру, меняя смещение этого куска. На флешках такое не прокатывало. Точнее на моей старой флешке. Ну а из ошибко еще - структура не проинициализированна нулями. Хотя как себя ведет борланд яхз. Но обычно делают OVERLAPPED over = {0}; |
У вас нет случайно куска кода где нужно указывать смещение?
|
Я так понял что указывать смещеные прийдеться в цикле,но какойже ето тогда будет асинхронный ввод?Цикл то затормозит работу программы.Или я неправ?
|
Цитата:
|
нет, все коды остались на сгоревшем винче. но все сводилось к циклу типа
Код:
while(leftSize > chunkSize){Программу не затормозит, ибо вызов WriteFile будет асинхронным, то есть цикл дальше будет работать. Когда он передаст системе все куски для записи - он завершится и программы выполнится дальше. |
О, повезло вам.
https://wasm.ru/forum/viewtopic.php?id=26378 мой топик еще жив. |
Спасибо!!!!!!То что нужно!
|
| Время: 07:36 |