такой вот вопрос:
как сделать такую ситуацию, чтобы файл считался не сразу?
а то я вызываю ReadFileEx — и послее ее выполнения файл всегда оказывается считанным..
(файл открыл с флагом FILE_FLAG_OVERLAPPED)
Здравствуйте, sergei_132, Вы писали:
_>как сделать такую ситуацию, чтобы файл считался не сразу? _>а то я вызываю ReadFileEx — и послее ее выполнения файл всегда оказывается считанным.. _>(файл открыл с флагом FILE_FLAG_OVERLAPPED)
Например, взять файл размером в несколько десятков мегабайт.
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Зависит от того, каким образом Вы определяете, что файл "считался сразу".
очевидно, что сразу после выхода из функци ReadFileEx — буфер оказывается заполненным считанными данными.
я хочу добиться того, чтобы после выхода из этой ф-ии файл не был еще считан
Re[5]: async. io
От:
Аноним
Дата:
03.11.06 11:35
Оценка:
Здравствуйте, sergei_132, Вы писали:
_>Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>>Зависит от того, каким образом Вы определяете, что файл "считался сразу".
_>очевидно, что сразу после выхода из функци ReadFileEx — буфер оказывается заполненным считанными данными.
_>я хочу добиться того, чтобы после выхода из этой ф-ии файл не был еще считан
Помоему, вы занимаетесь маразмом и неправильно понимаете понятие "асинхронность".
Асинхронность — это в данном случае возврат управления сразу после запуска процесса чтения, а то что буфер заполнился сразу после возврата, это говорит только о быстродействии запоминающего устройства.
Здравствуйте, Аноним, Вы писали:
А>Помоему, вы занимаетесь маразмом и неправильно понимаете понятие "асинхронность". А>Асинхронность — это в данном случае возврат управления сразу после запуска процесса чтения, а то что буфер заполнился сразу после возврата, это говорит только о быстродействии запоминающего устройства.
подскажите тогда такой тест, чтобы запоминающее устройство не могло так быстро выполнить операцию...
все равно, должно же хоть когда то не успеть выполниться...
Здравствуйте, sergei_132, Вы писали:
_>я хочу добиться того, чтобы после выхода из этой ф-ии файл не был еще считан
Это я уже понял. Я спросил — как Вы определяете, что непосредственно после возврата из ReadFileEx буфер уже заполнен? Из приведенного Вами фрагмента кода этого не видно. Текст функции CompRoutine тоже неплохо бы привести, хотя в данном примере она вызываться не должна.
ЕМ>Это я уже понял. Я спросил — как Вы определяете, что непосредственно после возврата из ReadFileEx буфер уже заполнен? Из приведенного Вами фрагмента кода этого не видно. Текст функции CompRoutine тоже неплохо бы привести, хотя в данном примере она вызываться не должна.
ну хотя бы по тому , что HasOverlappedIoCompleted всегда == TRUE
ЕМ>Это я уже понял. Я спросил — как Вы определяете, что непосредственно после возврата из ReadFileEx буфер уже заполнен? Из приведенного Вами фрагмента кода этого не видно. Текст функции CompRoutine тоже неплохо бы привести, хотя в данном примере она вызываться не должна.
CompRoutine — не вызывается, хотя можно заменить WaitForSingleObject на SleepEx
хотя какая разница вызывать CompRoutine или нет....
Здравствуйте, sergei_132, Вы писали:
_>ну хотя бы по тому , что HasOverlappedIoCompleted всегда == TRUE
Последний раз: если Вам нужна помощь — покажите весь код, имеющий отношение к проблеме. В противном случае — разбирайтесь сами, не отнимайте времени у сообщества.