今天试了一下,发现WebClient
虽然支持异步,但果然不支持并发……
测试代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Imports System.Net Imports System.Threading Module Module1 Sub Main() Dim c As New WebClient Dim t1 = c.DownloadStringTaskAsync("http://www.baidu.com") Dim t2 = c.DownloadStringTaskAsync("http://www.zhihu.com") Thread.Sleep(10) Console.WriteLine(t1.IsCompleted) Console.WriteLine(t1.IsCompleted) End Sub End Module |
运行结果如下
1 2 3 4 5 6 |
未经处理的异常: System.NotSupportedException: WebClient 不支持并发 I/O 操作。 在 System.Net.WebClient.ClearWebClientState() 在 System.Net.WebClient.DownloadStringAsync(Uri address, Object userToken) 在 System.Net.WebClient.DownloadStringTaskAsync(Uri address) 在 System.Net.WebClient.DownloadStringTaskAsync(String address) 在 ConsoleApplication1.Module1.Main() 位置 ConsoleApplication1Module1.vb:行号 9 |
测试环境:VS2013。