我目前正在尝试使用线程在 c# 中读取和写入数据到 xml 文件,我有一个实用程序类,它具有读取 XML 文件然后将数据写入 xml 的功能。我这样做的方式如下。
public class XMLUtil
{
String lockingObject = "";
public bool WriteToXml(Product product)
{
lock(lockingObject)
{
XDocument xDoc = XDocument.Load("file.xml")
}
//Code to add data to XElement
xDoc.Add(xElement)
lock(lockingObject)
{
XDocument xDoc = XDocument.Save("file.xml")
}
}
}
public class SomeOtherClass
{
XMLUtil xmlUtil = new XMLUtil();
private async void btn_Click(object sender, EventArgs e)
{
bool t = await Task.Run(() => xmlUtil.WriteToXml());
}
}
static class Program
{
// default methods
while (true)
{
t = await Task.Run(() => XMLUtil.CheckChanges());
await Task.Delay(20000);
}
}
我还有一个后台线程,它不断检查 XML 文件中的更改以将视图重新加载给用户,因为我仍然收到 IO/Exception 说该文件已被使用,因此无法打开...我该如何解决?