[win32]Использование файлов с FILE_FLAG_OVERLAPPED
Юзать event'ы религия не позволяет?
да походу асинхронность пугает
Юзать event'ы религия не позволяет?Это, во-первых, лишние ресурсы (по одному хендлу на поток, а потоков может быть с полтора десятка плюс три строчки кода.
А в структуре позицию в файле указывать не только можно, но и нужно.
Это, во-первых, лишние ресурсы (по одному хендлу на поток, а потоков может быть с полтора десяткаТакие задачи решаются через тред пулы, IO Completion.
Как я понимаю, тебе нужен GetOverlappedResult с последним параметром в TRUE.а таймаут, ради которого я и использую FILE_FLAG_OVERLAPPED? Если его не использовать, то можно обойтись синхронным чтением.
Оставить комментарий
Andbar
1.В структуре OVERLAPPED есть поля, указывающие на позицию. Можно ли указать позицию файла, с которой необходимо начать файловую операцию в данной структуре вместо вызова SetFilePointer перед вызовом ReadFile/WriteFile?
2.
Как я понял из документации, в поле hEvent структуры OVERLAPPED необходимо до вызова файловой операции записать NULL, либо хэндл Event'а. В документации к GetOverlappedResult написано: Я открываю каждый файл в отдельном потоке и обращаюсь к файлу только с потока, в котором он был открыт. Однако в документации к WaitForSingleObject про возможность указания файлового хэндла в качестве объекта ничего не указано. Можно ли так делать?