I have this problem in my application:
- Step 1 - create an file (xml) and put some content in it
- Step 2 - a 3rd party application will open the file and get the info from the file made in step 1.
- Step 3 - delete the file again.
The first question that I have is about this part of the 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);
Is my assumption correct that the last line only gets executed when the above is already done? So I can be 100% sure that the data is all in the xml before it tries to start it right?
The second part where I get an error now is here:
Process.Start(startInfo);
File.Delete("Filename");
What happens now, is that the file already gets deleted before the 3rd party program had read it into its memory.
Is there some way that I can check that the file is no longer in use, or make some stable way of waiting?
I already found a way to use Thread.Sleep(TimeInMiliSec);
but I guess this is not a correct way of doing this (more like a workaround solution)?