У меня есть проблема в моем приложении:
- Шаг 1 - создайте файл (xml) и поместите в него некоторое содержимое
- Шаг 2 - стороннее приложение откроет файл и получит информацию из файла, созданного на шаге 1.
- Шаг 3 - снова удалить файл.
Первый вопрос, который у меня возник, касается этой части кода:
XmlDocument xmlDoc = new XmlDocument();
DataSet ds = //use a method to put in the data
xmlDoc.LoadXml(ds.GetXml());
xmlDoc.Save("Filename");
// ...
Process.Start(startInfo);
Верно ли мое предположение, что последняя строка выполняется только тогда, когда вышеописанное уже выполнено?
Так что я могу быть на 100% уверен, что все данные находятся в XML, прежде чем он попытается их запустить правильно?
Вторая часть, где я сейчас получаю сообщение об ошибке, находится здесь:
Process.Start(startInfo);
File.Delete("Filename");
Что происходит сейчас, так это то, что файл уже удален до того, как сторонняя программа прочитала его в своей памяти.
Можно ли как-нибудь проверить, что файл больше не используется, или сделать какой-то стабильный способ ожидания?
Я уже нашел способ использовать Thread.Sleep(TimeInMiliSec);
, но я думаю, что это неправильный способ сделать это (скорее как обходное решение)?