0

所以我写了这段代码,它检查我的 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) 行时,我希望任务停止并运行一个函数。

4

0 回答 0