Я создаю приложение C # WinForm для редактирования шаблона текстового документа (среди прочих функций).Поскольку мне нужно вставить пару изображений, я создаю их копию во временной папке компьютера (из запроса к базе данных) и хочу удалить все эти файлы при закрытии приложения.
Кажется,например, закрытие самого документа и ApplicationClass из Office.Interop.Word занимает некоторое время, и я хотел бы знать, есть ли способ вызвать событие или что-то подобное, когда приложение фактически закрыто.
Вот моя функция:
private void CloseDocument()
{
if (_doc != null)
{
_doc.Close();
_doc = null;
}
if (_appClass != null)
{
_appClass.Quit();
_appClass = null;
}
File.Delete(tempFileName);
foreach (string path in _imagePaths)
{
File.Delete(path);
}
}
Эта функция связана с событием OnHandleDestroyed
.К сожалению, когда документ содержит кучу изображений, кажется, что для того, чтобы объекты _doc
и _appClass
действительно закрылись, требуется некоторое время, в результате чего программа выдает System.IO.IOException
: The process cannot access the file 'C:\Users\***\AppData\Local\Temp\alr1snsc.png' because it is being used by another process.
* 1014Есть ли способ вызвать функцию, когда документ или ApplicationClass правильно закрыты?Обратите внимание, что если я вставляю спящий режим перед тем, как пытаться удалить файлы, все работает нормально, поэтому я пришел к выводу, что действительно нужно правильно закрыть документ.