我的代码存在很大问题我总是得到IO异常,我不知道为什么......我使用StreamWriter ......
internal void SaveOwner(Owner o)
{
StreamWriter w = new StreamWriter(path, true);
if (o != null)
w.WriteLine(o.ToFileString());
w.Close();
}
Pleace任何人都可以帮助我我不知道我已经尝试了所有我知道的东西..!? 它总是说其他进程使用该文件。 IO异常 - 另一个进程使用的文件 因为我打电话给方法我问o!= null
代码在C#
中答案 0 :(得分:0)
您应该在using
块内包装您的调用,以便在适当的时间处理对象。
internal void SaveOwner(Owner o)
{
using(StreamWriter w = new StreamWriter(path, true))
{
if (o != null)
{
w.WriteLine(o.ToFileString());
}
}
}
答案 1 :(得分:0)
我认为这是由于多线程造成的,因为我能够通过它重现您的问题。
你可以简单地包装一个锁(使用一个静态对象。),为了善良,请使用using
关键字来包装你的流。
static object syncRoot = "";
...
void SaveOwner(Owner o)
{
lock (syncRoot)
{
using (StreamWriter w = new StreamWriter(path, true))
{
if (o != null)
w.WriteLine(o.ToFileString());
}
}
}