何百ものWebサイトのhtmlを収集するHttpWebRequestを含むVBコードがありますが、タスクを完了するのに非常に長い時間がかかります。コードは基本的にfor-to-loopであり、リストボックス内の各Webサイトのhtmlを読み取ります。ループでは、各Webサイトの抽出されたhtmlで特定の単語が検索されます。各単語列の下に単語があるウェブサイトのリストを表示したい。
For Each webAddr As String In lstbox.Items
strHtml = Make_A_Call(webAddr)
If strHtml.Contains("Keyword1") Then
..........
End If
If strHtml.Contains("Keyword2") Then
..........
End If
..........
..........
..........
..........
..........
Next
Private Function Make_A_Call(ByVal strURL As String) As String
Dim strResult As String
Dim wbrq As HttpWebRequest
Dim wbrs As HttpWebResponse
Dim sr As StreamReader
Try
strResult = ""
wbrq = WebRequest.Create(strURL)
wbrq.Method = "GET"
' Read the returned data
wbrs = wbrq.GetResponse
sr = New StreamReader(wbrs.GetResponseStream)
strResult = sr.ReadToEnd.Trim
sr.Close()
sr.Dispose()
wbrs.Close()
Catch ex As Exception
ErrMessage.Text = ex.Message.ToString
ErrMessage.ForeColor = Color.Red
End Try
Return strResult
End Function
コンパイルされたコードは、ループを完了するのにほぼ5分かかります。完了しない場合があります。パフォーマンスを向上させるために変更できますか?より良いコードと提案を手伝ってください。