【发布时间】:2011-06-04 08:28:52
【问题描述】:
我的代码很少:
using (WebClient wc = new WebClient())
{
wc.Proxy = new WebProxy("IP", Port);
resume:
if (!wc.IsBusy)
{
string rtn_msg = string.Empty;
try
{
rtn_msg = wc.DownloadString(new Uri("http://google.com/"));
}
catch (WebException) { }
catch (Exception) { }
}
else
{
System.Threading.Thread.Sleep(1000);
goto resume;
}
}
我正在尝试将它与 ThreadPool 一起使用:
foreach (Proxy proxy in s)
{
ThreadPool.QueueUserWorkItem((c) =>
{
this.CheckProxy(proxy);
});
}
问题是列表中的最后一个代理被所有线程检查。
例如,代理列表中有ip1、ip2、ip3、ip4,所有线程都会检查ip4,即列表中的最后一项。
这是为什么呢?关于如何让它发挥作用的任何建议?
【问题讨论】:
标签: c# .net windows webforms webclient