Хорошо, дело в том, что когда вы открываете файл, он имеет следующие режимы.и всякий раз, когда вы открываете файл, создается обработчик и передает его вам, и вы присваиваете ему ссылку
- чтение
- запись
- оба из них
- ни один из этих
Открытый файл, который не является общим, не может быть открыт в том же приложении вызывающего абонента или в другом, пока он не будет закрыт приложением вызывающего абонента и не получит эксклюзивный доступ.
Если файл открыт в режиме общего доступа, система сравнивает запрошенные режимы доступа и общего доступа с режимами, указанными при открытии файла.Если вы укажете режим доступа или совместного использования, который конфликтует с режимами, указанными в предыдущем вызове, открыть файл не удастся.
наше приложение испытывает серьезный сбой, ресурсы вашего управляемого кода не будут очищены приложением или не будут пытатьсячтобы восстановить вещи.в основном все компоненты GC вашего кода не будут работать. Но операционная система все еще будет пытаться очистить после вас.Это решает проблему невыпущенной памяти, дескрипторов и других системных объектов, так же, как и ваши обработчики FileStream
Мое лучшее предположение состоит в том, что если файл находится в режиме совместного использования, блокировка этого файла будет снята после очистки ОС после вашего приложения.сбои.Потому что логика вашего приложения никогда не достигнет этого состояния.
это также верно для сегментов неуправляемого кода, так как он напрямую вызывает API управляемой ОС, и обработчики ОС будут создавать, и если эти обработчики ОС будут аварийно завершать работу.эти обработчики сами позаботятся об ОС.
это то, как Windows 10 предотвращает захват области памяти в местах ее системных файлов.