FileStream.Dispose закрывает файл немедленно? - PullRequest
7 голосов
/ 15 июня 2011

У меня есть код, который записывает файл, сохраняя MemoryStream в FileStream с помощью MemoryStream.WriteTo (). После того, как файл закрыт, он снова открывается для чтения метаданных ...

Это работает примерно в 80 - 90% случаев. Остальные 20% я получаю исключение, говоря, что файл «используется другим процессом».

Разве FileStream.Dispose () не освобождает ресурсы синхронно? Есть ли что-то более низкое на земле Win32, о которой я не знаю? Я не вижу ничего очевидного в документации .Net.

1 Ответ

6 голосов
/ 15 июня 2011

Как можно скорее.Может быть некоторое отставание из-за невыполненных записей , задержки в обновлении информации каталога и т. Д. Это также может быть антивирусная программа, проверяющая ваш измененный файл.

Это может быть редкий случай, когда требуется Thread.Sleep(1).Но чтобы быть в полной безопасности, вам нужно поймать (любое) исключение и повторить определенное количество раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...