我做了一个读取 xml 的服务。在 xml 我有输入目录和输出目录。该服务选择输入目录中的文件并重命名它们并将它们移动到输出目录。我想在服务中实现线程。我希望它在一个线程中选择一个 xml 节点,在另一个线程中选择另一个节点。或者,如果不考虑节点,一个线程选择要执行的前 10 个操作,然后选择下一个要执行的 10 个操作,等等,这甚至会很好。这样所有节点都以并行方式处理。谁可以帮我这个事?我尝试阅读一些线程教程,但无法通过它们获得太多。服务代码如下:
XmlDocument doc = new XmlDocument();
doc.Load("Data.xml");
int count = doc.SelectNodes("Data/DataClass").Count;
for (int i = 1; i < count; i++)
{
string xpath = "/Data/DataClass[" + i + "]";
XmlNode node = doc.SelectSingleNode(xpath);
XmlNodeList subnode = node.ChildNodes;
string pathO = "";
string pathI = subnode[0].InnerText;
string prefix = subnode[2].InnerText;
string freq = subnode[3].InnerText;
string[] filenames = Directory.GetFiles(pathI);
node.ParentNode.RemoveChild(doc.SelectSingleNode(xpath));
doc.Save("Data.xml");
foreach (string filename in filenames)
{
pathO = subnode[1].InnerText;
pathO = pathO + "\\" + prefix;
string fname = Path.GetFileName(filename);
pathO = pathO + fname;
System.IO.File.Move(filename, pathO);
}
}