私はたくさん検索しましたが、私の問題に対する適切な解決策を見つけることができませんでした。テレビ番組のすべてのエピソード情報を含む 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はとても遅いですか?私に何ができる?