2
私のような少しのコードがあります:私はThreadPoolのでそれを使用しようとしていますマルチスレッドプロキシチェッカー
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;
}
}
を:
foreach (Proxy proxy in s)
{
ThreadPool.QueueUserWorkItem((c) =>
{
this.CheckProxy(proxy);
});
}
問題は、リストの最後のプロキシがすべてのスレッドによってチェックされていることです。
たとえば、プロキシリストにip1、ip2、ip3、ip4を指定した場合、すべてのスレッドはリストの最後の項目ip4をチェックします。
なぜですか?どのように私はこれを動作させることができます上の任意の提案?