我进行了很多搜索,但找不到适合我的问题的解决方案。我编写了一个包含电视节目所有剧集信息的 xml 文件。它是 38 kb,包含大约 680 个变量的属性和字符串。起初我只是在 XMLTextReader 的帮助下阅读它,它在我的四核上运行良好。但是我妻子用了 5 年的笔记本电脑花了大约 30 秒才读完。所以我想到了多线程,但我得到了一个异常,因为文件已经打开了。
线程开始看起来像这样
while (reader.Read())
{
...
else if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name.Equals("Season1"))
{
current.seasonNr = 0;
current.currentSeason = season[0];
current.reader = reader;
seasonThread[0].Start(current);
}
else if (reader.Name.Equals("Season2"))
{
current.seasonNr = 1;
current.currentSeason = season[1];
current.reader = reader;
seasonThread[1].Start(current);
}
和这样的解析方法
reader.Read();
for (episodeNr = 0; episodeNr < tmp.currentSeason.episode.Length; episodeNr++)
{
reader.MoveToFirstAttribute();
tmp.currentSeason.episode[episodeNr].id = reader.ReadContentAsInt();
...
}
但它不起作用...
我通过了读者,因为我希望“光标”处于正确的位置。但我也不知道这是否可行。
请帮忙!
编辑: 伙计们,我在哪里写过关于 IE 的文章??我编写的程序解析文件。我在我的 PC 和笔记本电脑上运行它。根本没有IE。
EDIT2: 我做了一些秒表研究,发现解析 xml 文件在我的 PC 上只需要大约 200 毫秒,在我妻子的笔记本电脑上只需要 800 毫秒。是WPF这么慢吗?我能做些什么?