Использовать как Flush (True), так и FlushFileBuffers?

Я хочу записать в файл и сразу же сбросить на диск.

Другие вопросы по SO указывают на то, что Flush (True) ненадежен в .NET 4.0. Я действительно использую .NET 4.0 и не могу выполнить обновление в ближайшее время.

Надежен ли FlushFileBuffers? или известно, что это тоже ошибка?

Есть ли вариант, который я могу использовать, или я должен использовать оба и надеяться на лучшее?

Other questions on SO Ссылка на эти вопросы может дать вам больше ответов.
mjwills 16.11.2018 00:07
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
255
1

Ответы 1

Я предполагаю, что "ошибка", о которой вы говорите, - это Вот этот:

.NET Framework 4.0 introduced the new FileStream.Flush(bool flushToDisk) overload. If flushToDisk is set to true, it should commit the changes to disk.

However, in many cases (if internal buffer pointer is 0) the changes are not committed to disk, and the Flush(true) call does absolutely nothing.

If applications rely on FileStream.Flush(true) working as described, it could lead to data corruption issues.

но согласно Есть ли официальное исправление (также известное как KB) для ошибки FileStream.Flush, появившейся в .Net 4? это было исправлено в 4.0.3:

...As far as I can tell it is fixed in .NET Framework Update 4.0.3 even though it's not mentioned in the KB.

Другие вопросы по теме