我有一个定期从我的 C#.Net 应用程序读取输出的第 3 方应用程序。
由于某些限制,我只能将输出写入一个文件,然后由第 3 方应用程序读取。
我每次都需要覆盖同一个文件的内容。
我目前在 C# 中使用
Loop
{
//do some work
File.WriteAllText(path,Text);
}
第 3 方应用程序定期检查文件并读取内容。这很好用,但会使 CPU 使用率非常高。用文本编写器替换 File.WriteAllText 解决了高 CPU 使用率的问题,但随后我的文本被附加到文件而不是覆盖文件。
有人能为我指出正确的方向,让我可以在 C# 中保持文件打开并定期覆盖其内容而不会产生太多开销吗?
编辑:我通过选择每 20 次循环迭代而不是每次循环迭代写入文件来修复 CPU 使用率。下面给出的所有答案都有效,但有与关闭文件和重新打开相关的开销。谢谢
最佳答案
使用 File.Open
和 FileMode
Truncate
为您的 TextWriter
创建文件流。
关于c#保持文件打开但覆盖内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5653834/