今天试了一下,发现`WebClient`虽然支持异步,但果然不支持并发……
测试代码如下
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
运行结果如下
未经处理的异常: 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。
