如何让我的客户端同时(并行)下载多个htmlsource代码而不是seriel。
Dim client As WebClient = New WebClient()
client.Encoding = System.Text.Encoding.UTF8
Source1 = client.DownloadString("www.google.com"))
Source2 = client.DownloadString("www.google.com"))
Source3 = client.DownloadString("www.google.com"))
Source4 = client.DownloadString("www.google.com"))
Source5 = client.DownloadString("www.google.com"))
此请求大约需要1秒,因为Source1发送请求并在source2发送请求之前等待响应。
我目前的解决方案是使用5个不同的背景工作者,然后同时启动它们,并让每个人发送其中一个请求。
Button1.click:
backgroundworker1.RunWorkerAsync()
backgroundworker2.RunWorkerAsync()
backgroundworker3.RunWorkerAsync()
backgroundworker4.RunWorkerAsync()
backgroundworker5.RunWorkerAsync()
backgroundworker1.work:
Source1 = client.DownloadString("www.google.com"))
backgroundworker2.work:
Source2 = client.DownloadString("www.google.com"))
backgroundworker3.work:
Source3 = client.DownloadString("www.google.com"))
backgroundworker4.work:
Source4 = client.DownloadString("www.google.com"))
backgroundworker5.work:
Source5 = client.DownloadString("www.google.com"))
这实际上有效,现在只需0.20秒即可获得所有5个源代码。但这真的是实现这一目标的唯一途径。
我有一些漂亮的进步循环,即使将循环分成两个独立的后台工作程序也是一件痛苦的事。当那些说那时我可能想要至少8个独立的背景工作者来达到我需要的速度。这个解决方案几乎是不可能的。请帮助:)