【发布时间】:2012-07-03 16:53:07
【问题描述】:
我创建了一个应用程序,它通过 XML 文件传递并“提取”具有特定属性的特定值的条目。该应用程序运行良好,但 XML 文件有超过 52,000 个条目,并且只有 3 个值可供排序(因此执行它自然需要一些时间)。因此,我想实现一个进度条,这样我就可以跟踪我的应用程序所取得的进展。我用谷歌搜索了它,但没有一个解决方案对我有用(应用程序确实有效,但进度条根本不动),所以如果你能帮助我,那就太好了。
提取条目的代码是这样的:
XmlNodeList nodes;
string ExtractedXML = "";
private void extractingXMLToolStripMenuItem_Click(object sender, EventArgs e)
{
if (nodes.Count != 0)
{
foreach (XmlNode node in nodes)
{
if (String.Compare(node.ChildNodes[6].ChildNodes[0].Attributes.GetNamedItem("code").Value.ToString(), "CodeValue") == 0)
{
tempXML = node.InnerXml;
temp = "<" + node.Name + " code=\"" + node.Attributes.GetNamedItem("code").Value + "\">" + Environment.NewLine;
temp += tempXML + Environment.NewLine;
temp += "</" + node.Name + ">";
ExtractedXML += temp + Environment.NewLine;
temp = "";
}
}
textBox1.Text = ExtractedXML;
}
}
每个具有相似代码的值都有一个 ToolStripMenue 项,只有“CodeValue”发生变化。如何实现进度条以显示应用程序的进度?
【问题讨论】:
-
使用 XML 库或至少使用 StringBuilder。您可能会看到很多改进,以至于您不再需要 ProgressBar。
-
我省略了进度条,因为它没有做任何事情,并且委托函数只是给我带来了错误。我的问题是如何实现进度条来跟踪这个功能的进度。至于使用 XML 库,我从未使用过它们,当我尝试用谷歌搜索它时,我得到了 XmlTextReades 和类似函数的结果。我看过一些 xpath 示例并尝试实现它们,但没有成功。任何建议都非常受欢迎。谢谢
标签: c# .net xml winforms progress-bar