Как сбросить TFileStream?

Вам нужно будет назначить положение относительно родителя community-block, поэтому в этом случае установите row_com на position: relative.

16
задан Jim McKeeth 24 April 2009 в 20:07
поделиться

3 ответа

You need to flush the stream. Try:

 FlushFileBuffers(fs.Handle); 

? Did you see/try this?

27
ответ дан 30 November 2019 в 16:19
поделиться

Это немного запутанно, но вы действительно можете контролировать большую часть этого поведения в вызове (win32 api) CreateFile. Вы можете добавить FILE_FLAG_WRITE_THROUGH / FILE_FLAG_NO_BUFFERING или даже обеспечить оптимизацию намеков системы кэширования с FILE_FLAG_SEQUENTIAL_SCAN или FILE_FLAG_RANDOM_ACCESS . Чтобы использовать TFileStream таким образом, я думаю, вам нужно переопределить Create, чтобы изменить способ получения дескриптора файла. FWIW, FlushFileBuffers эквивалентен закрытию / открытию файла. Если вы выполняете много действий с повторными сбросами, это значительно замедлит код.

Здесь немного документации

6
ответ дан 30 November 2019 в 16:19
поделиться

Я думаю, что ответ altCognito (FlushFileBuffers), вероятно, лучший, но только потому, что TFileStream не выполняет буферизацию самостоятельно. Для других буферизованных потоков сначала нужно посмотреть, предлагает ли поток метод Flush. И в крайнем случае вы могли бы использовать старый трюк Seek (Begin), а затем Seek (CurrentPos).

6
ответ дан 30 November 2019 в 16:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: