Цитата: OlegON ➤ как раз в этом случае винда обязана прибить всякий мусор, который по каким-то непонятным причинам не закрывается и выключиться, успеть сбросить все кеши и прочее, чтобы не развалилась файловая система...
Я не понимаю, зачем ждать последних секунд, если данные настолько важные? Пусть в параллельном потоке они постоянно инкрементально или целиком сохраняются, а если приложение прибилось по какому-то поводу, то в следующий запуск спросить, надо ли восстановить их, если не надо, то пусть парочка последних таких копий валяется на всякий случай... Если система получила сигнал на выключение, она должна выключиться и немедленно, приоритет каких-то там окошек минимальный, если хотите серьезнее - регистрируйте приложение сервисом, они тоже могут показывать окошки.
Если мне нужно в середину файла вставить новые записи, я должен:
1.открыть файл.
2.Раздвинуть (очень большой по размеру) файл, считав его хвост в память, затем записав его хвост со смещением
3.в образовавшуюся дырку записать новую запись.
4.закрыть файл.
а если мне нужно 500 записей подряд записать, я , открыв файл, не буду спешить его закрывать, пока не сформирую все 500 новых записей и не запишу их. На это мне потребуется какое-то время, возможно, 5 секунд. Если закрыть раздвинутый файл не записав в его середину запись, в середине файла будет мусор. Нужно обязательно по получению сигнала от винды на завершение работы либо быстро дозаписать запись в раздвинутый файл, либо
(если данные не готовы) сдвинуть файл назад, убрав эту дырку. Чтобы сдвинуть назад большой файл могут потребоваться те же условные 5 секунд.
Винда направила мне сигнал на завершение и ОБЯЗАНА дать мне время успеть корректно закрыть мои открытые файлы так, чтобы я успел во все пустые дырки в раздвинутые файлы записать верные данные чтобы там не оказалось мусора и база данных не была испорченной. Не давая ни секунды времени на это, винда не позволяет мне сохранить базу данных не испорченной. Но ведь ВИН ХР дает такое время, ждет. Почему ВИН7 этого не делает? ДА ПОТОМУ ЧТО ЭТО ОШИБКА В АЛГОРИТМАХ ВИНДЫ 7.