0

我们有一个自定义应用程序,它每 10 秒将统计信息写入一个 XML 文件。Web 服务读取 XML 并每 3 秒对其进行一次转换。大约每 5 次刷新(任意数)我们会得到一个空白屏幕 b/c 在我们写入文件时 Web 服务试图从文件中读取。

我无法对 Web 服务或它在文件中的读取方式做任何事情。我需要做的是能够写入文件而不会导致页面空白。

有任何想法吗?

这是 C# 顺便说一句 .NET 4

4

2 回答 2

3

更改代码以写入不同的文件名,然后调用File.Replace()以原子方式换出原始文件。

这样,您希望在任何明显的时间内锁定文件。

于 2013-05-22T18:31:23.127 回答
0

您可以将正在写入的文件名更改为其他文件名(在文件名后添加时间戳可能是一种很好的做法),因此它不会被锁定。然后,您可以用刚刚创建的新文件替换旧文件。

于 2013-05-22T18:36:09.090 回答