【问题标题】:How to wait for a file to be saved before executing next line of code? [duplicate]如何在执行下一行代码之前等待文件保存? [复制]
【发布时间】:2012-11-05 17:39:42
【问题描述】:

可能重复:
Is XMLDocument.Save an atomic operation?

我的程序中似乎有一个 Heisenbug。我需要导出一个 Xml 文件,然后重新导入它。问题是有时在 Xml 文件完成保存之前,程序会继续到下一行尝试重新导入它,因为它没有完成保存,应用程序会崩溃。当我调试它时,有足够的时间保存文件,因此程序不会崩溃。

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

我正在使用XmlDocument.Save 来保存文件。我想知道是否有办法在文件完全保存时实现某种回调。

【问题讨论】:

标签: c# callback save


【解决方案1】:

怀疑是杀毒软件。许多病毒扫描程序写得不好,并在您关闭文件时锁定文件,阻止任何程序打开它几秒钟。

看到这个问题:

【讨论】:

  • 我认为您对防病毒软件的看法是正确的,因为计算机上的防病毒软件具有很强的侵入性。对此的最佳解决方案是否只是尝试 x 次超时的 try-catch?
  • @Ryan:链接的问题和答案得出了这个结论。只需更改代码,无需更改整台计算机的配置,这可能是您拥有的最佳解决方案。更好的是获得一个没有损坏的 AV 程序。
猜你喜欢
  • 2021-07-30
  • 2018-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
相关资源
最近更新 更多