所以我写了这段代码,它检查我的 ConcurrentQueue 列表中的所有代理,但我想知道如果我只想检查 1 个代理是否工作然后退出呢?所以我尝试添加布尔运算符来测试代理工作列表中是否有超过 1 个代理,但它仍然继续检查所有代理。
System.Threading.Tasks.Parallel.ForEach(proxies, Sub(proxy)
Dim myProxy = New WebProxy(proxy)
Dim r As HttpWebRequest = HttpWebRequest.Create("http://www.google.com")
r.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36"
r.Timeout = 3000
r.Proxy = myProxy
Try
Using re As HttpWebResponse = r.GetResponse()
Console.WriteLine("Proxy Working: " & proxy & vbNewLine)
SyncLock workingProxies
workingProxies.Add(proxy)
End SyncLock
End Using
Catch ex As Exception
Console.WriteLine(ex.Message & " Proxy Not Working! " & proxy & vbNewLine)
End Try
End Sub)
这就是我目前正在使用的代码,当它运行 workingProxies.Add(proxy) 行时,我希望任务停止并运行一个函数。