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





Я предполагаю, что "ошибка", о которой вы говорите, - это Вот этот:
.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.
Other questions on SOСсылка на эти вопросы может дать вам больше ответов.