Вопрос

Я использую процесс, который создает файл и используя этот файл. После окончания этого процесса я удаляю этот файл.

Если какое-то исключение возникает между тем, как узнать, что файл выпускается по процессу или нет, и как его удалить, если он заблокирован процессом.

Спасибо за любую помощь :)

Это было полезно?

Решение

В Windows, когда процесс заканчивается, ОС возвращает все ресурсы, принадлежащие этому процессу автоматически. Конец истории.

Например, скажем, вы сделали «CreateFileMapping ()» на каждом из двух процессов, чтобы разделить сегмент памяти. Когда первый процесс выходит, окна уменьшают счетчик использования, и только процесс выживания все еще может использовать объект. Когда второй процесс делает «Close Handle ()» (или сам выходит), счетчик уменьшается до нуля, и объект полностью освобожден.

Другими словами, окна будут восстанавливать ресурс, когда он больше не используется, независимо от того, являются ли процессы изящно после себя или нет.

И нет, даже если вы открываете файл для эксклюзивного доступа, сам файл не будет «заблокирован» после закрытия дескрипта файла (и окна автоматически закроется, когда программа завершится).

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

Когда ваша программа заканчивается - независимо от того, что означает - файл, если он все еще существует, больше не будет заблокирован процессом ... потому что процесс не существует.

Но я должен удивляться; Если файл просто удаляется в любом случае в конце, действительно ли вам нужно создать файл в первую очередь?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top