C# 如何在执行下一行代码之前等待保存文件?

C# 如何在执行下一行代码之前等待保存文件?,c#,callback,save,C#,Callback,Save,可能重复: 我的程序中似乎有一个海森堡。我需要导出一个Xml文件,然后重新导入它。问题是,有时在Xml文件完成保存之前,程序将继续到下一行尝试重新导入它,并且由于未完成保存,应用程序将崩溃。当我调试它时,有足够的时间保存文件,这样程序就不会崩溃 我可以使用Thread.Sleep,但在速度较慢的计算机上,如果时间太长,它仍可能崩溃 我正在使用XmlDocument.Save保存文件。我想知道是否有一种方法可以在文件完全保存后实现某种回调。怀疑防病毒。许多病毒扫描程序编写得不好,在关闭文件时会将

可能重复:

我的程序中似乎有一个海森堡。我需要导出一个Xml文件,然后重新导入它。问题是,有时在Xml文件完成保存之前,程序将继续到下一行尝试重新导入它,并且由于未完成保存,应用程序将崩溃。当我调试它时,有足够的时间保存文件,这样程序就不会崩溃

我可以使用
Thread.Sleep
,但在速度较慢的计算机上,如果时间太长,它仍可能崩溃


我正在使用
XmlDocument.Save
保存文件。我想知道是否有一种方法可以在文件完全保存后实现某种回调。

怀疑防病毒。许多病毒扫描程序编写得不好,在关闭文件时会将其锁定,从而在几秒钟内阻止任何程序打开它

见这个问题:


怀疑是杀毒病毒。许多病毒扫描程序编写得不好,在关闭文件时会将其锁定,从而在几秒钟内阻止任何程序打开它

见这个问题:


Save
文件保存前不应返回。它可能仍在通过操作系统缓存刷新,但任何访问它的操作都应该仍然有效。你能制作一个简短但完整的程序来演示这个问题吗?这里有一个类似的问题。[[1]:
Save
在文件保存之前不应返回。它可能仍在通过操作系统缓存刷新,但任何访问它的操作都应仍然有效。您能否生成一个简短但完整的程序来演示此问题?这是与此类似的上一个问题。[[1]:我认为你的防病毒方法是正确的,因为计算机上的防病毒是入侵性很强的。解决这一问题的最佳方法是尝试捕获并超时尝试x次吗?@Ryan:链接的问题和答案得出了这个结论。这可能是你只需更改代码而不进行配置的最佳方法持续时间会改变整个计算机。更好的办法是得到一个没有坏掉的AV程序。我认为你的防病毒方法是正确的,因为计算机上的防病毒非常具有侵入性。解决这个问题的最佳方法是尝试捕捉,超时尝试x次吗?@Ryan:链接的问题和答案就是这样的结论:这可能是您最好的解决方案,只需更改代码,而不必更改整个计算机的配置。更好的方法是获得一个未损坏的AV程序。