Vérifier si un fichier est en cours d'utilisation, attendez la fin de la

J'ai ce problème dans mon application:

  • Etape 1 - créer un fichier (xml) et mettre un peu de contenu en elle
  • Étape 2 - une application 3ème partie va ouvrir le fichier et obtenir les informations à partir du fichier de l'étape 1.
  • Étape 3 - supprimer le fichier à nouveau.

La première question que j'ai, c'est sur cette partie du code:

XmlDocument xmlDoc = new XmlDocument();
DataSet ds = //use a method to put in the data
xmlDoc.LoadXml(ds.GetXml());
xmlDoc.Save("Filename");
//...
Process.Start(startInfo);

Est mon hypothèse correcte que la dernière ligne sera exécuté lorsque le dessus est déjà fait?
Donc, je peux être sûr à 100% que les données sont dans le fichier xml avant qu'il essaye de le lancer droit?

La deuxième partie où j'obtiens une erreur est maintenant ici:

Process.Start(startInfo);
File.Delete("Filename");

Ce qui se passe maintenant, c'est que le fichier est supprimé avant la 3ème partie du programme avait lu dans sa mémoire.

Est-il un moyen que je puisse vérifier que le fichier n'est plus en cours d'utilisation, ou de faire quelques manière stable d'attente?

J'ai déjà trouvé un moyen d'utiliser Thread.Sleep(TimeInMiliSec); mais je suppose que ce n'est pas une façon correcte de le faire (en plus comme une solution de rechange)?

OriginalL'auteur Dante1986 | 2012-01-25