如何处理此异常。我有一个文本文件。此代码每3秒重写一次文件。同时,另一个MS Excel文件从文件中读取数据。有时我得到这个例外。
有没有办法让StreamWriter等到MS Excel完成读取文件并在此之后开始重写文件?
string path = @"C:\My Path\my_file.txt";
using (StreamWriter fs = new StreamWriter(File.OpenWrite(path)))
{
fs.Write(text);
fs.Close();
}
答案 0 :(得分:-1)
这是一种方式:
string path = @"C:\My Path\my_file.txt";
string text = "Declare text variable so this code compiles";
FileStream fileS = null;
bool done = false;
while (!done)
{
done = true;
try
{
fileS = File.OpenWrite(path);
}
catch (IOException ex)
{
done = false;
}
}
using (StreamWriter fs = new StreamWriter(fileS))
{
fs.Write(text);
fs.Close();
};
我还会在StopWatch
电话中添加以上while
循环超时,经过这么长时间,可能还有一小Thread.Sleep()
所以你不要全速旋转而基本上是试图获得FileStream
锁。