私はこのLINQtoxmlクエリを作成しました:
Dim xd1 As XDocument = XDocument.Load("C:\doc1.xml")
Dim xd2 As XDocument = XDocument.Load("C:\doc2.xml")
Dim xd3 As XDocument = XDocument.Load("C:\doc3.xml")
Dim q = From a In xd1...<row>, b In xd2...<row>, c In xd3...<row> Where
a.@Field1 = "pippo" AndAlso b.@Field2 = a.@RifField2 AndAlso c.@Field3 = a.@RifField3 Select
b.@Field4, b.@Field5, c.@Field6
Dim s As String = ""
For Each a In q
s &= a.Campo4 & " - " & a.Campo5 & " - " & a.Campo6 & vbCrLf
Next
TextBlock1.Text = s
ただし、このコードの実行には約5秒かかります。確かに私はクエリを変更しましたが、デバッグに入ると、行が
Dim q =From..。
実行するのに時間がかかり、「ForEach」サイクルがアイテムのスクロールを終了して終了するまで、後続のすべての行が非常に速く消えます。その後、実行が5秒間停止し、サイクルが終了します。
書くと同じ遅延が発生します
Dim q = (From ... ).ToArray
or else if I write
Dim i As Long = q.Count
最も奇妙なのは、アイテムリストが終了するのを確認するのに非常に長い時間がかかり、サイクルを終了する必要があることです。詳細:クエリqには8つのアイテムしかありません。
私のパフォーマンスの問題を解決するための提案はありますか?ピレッギ