为什么会有WebClient.DownloadStringAsync排队请求,我该如何加快速度?

时间:2019-02-11 21:02:01

标签: vb.net webclient

我正在使用WebClient.DownloadStringAsync将请求发送到URL。我一次发送数千个请求。基本上,在我发送请求和回调触发之间有一个延迟。我发送的请求越多,延迟就越长。在发送一个小时的请求后,延迟可能长达20分钟左右。几个小时后,延迟超过一个小时。我想知道如何在排队时尽快处理它们。

以下是一些详细信息:

  1. 我尝试了非异步代码-它花费的时间更长(每个请求大约一秒钟),所以请不要提出建议。

  2. 启动5000个请求所需的时间为91秒

  3. 完成5000个请求所需的时间为177秒

    查看以下代码:

    'Takes about 91 Seconds to get through this loop
    Do Until i=5000
         Dim wcWebClient As New System.Net.WebClient
         AddHandler wcWebClient.DownloadStringCompleted, AddressOf webClient_DownloadStringCompleted
         wcWebClient.DownloadStringAsync(New Uri(sURL))
         i=i+1
    Loop
    
            'Takes 177 seconds before all 5000 are processed
        Private Sub webClient_DownloadStringCompleted(ByVal sender As Object, ByVal e As DownloadStringCompletedEventArgs)
    
        End Sub
    

0 个答案:

没有答案