我需要将一个节点附加到用作日志的可能很大的XML文件中。一次插入与下一次插入之间的平均时间为200ms。目前我使用以下方法:
private void LogMessage(Message m)
{
lock (loglock)
{
// load XML
var doc = new XmlDocument();
doc.Load(MyLogFilename);
var root = doc.ChildNodes[0];
// append node
var node = GetXmlNode(doc, m);
root.AppendChild(node);
// save new XML
doc.Save(MyLogFilename);
}
}
我需要锁定,因为可以从不同的线程调用该方法。它有效,但我想避免每次加载整个文件。有没有更好的方法或任何解决方法才能获得相同的结果?