을 확인하여 내가 ... 프록시를 확인합니다 프로그램을 쓰고 싶었다 나는 멀티 쓰레드를 사용하고 싶어하지만, 돈`t이 내 프로그램에 적용하는 방법을 정말 알고 : 코드에멀티 스레딩이
int ktory = 0;
// Button to start multithreading
private void p_check_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
Thread th = new Thread(test_proxy);
CheckForIllegalCrossThreadCalls = false;
th.Start();
}
}
//This is my function to test proxies
private void test_proxy()
{
try
{
int ile = p_listbox.Items.Count;
string proxy = null;
//'ktory' - means position in listbox
proxy = p_listbox.Items[ktory].ToString();
ktory += 1;
//Splitting on IP and PORT
int gdzie = proxy.IndexOf(":");
string IP = proxy.Remove(gdzie);
string ipp = proxy.Replace(IP + ":", "");
int PORT = Int32.Parse(ipp);
//end o splitting
//My testing of anonimty (works good don`t need to check)
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(p_proxyjudge.Text);
WebProxy adr_proxy = new WebProxy(IP, PORT);
adr_proxy.UseDefaultCredentials = true;
request.Proxy = adr_proxy;
request.Timeout = 15000;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
// Checking if anonymous (not important)
StreamReader sr = new StreamReader(stream);
while (sr.EndOfStream != true)
{
string checking = sr.ReadLine();
if (!checking.Contains("REMOTE_ADDR ="))
p_work.Items.Add(proxy);
}
sr.Close();
stream.Close();
}
catch (Exception ex)
{
ktory += 1;
}
}
< : ILE 및 ktory 그냥 같은, 또는 여러 변수>
로 J하지만 내 멀티 스레딩은 10 첫째 프록시에 중지하거나
가장 큰 문제는 프록시를 확인하는 (10 개) 로봇을 만드는 것입니다 ... 하나 그들에게 10 배 번 확인 한 프록시가 다른 프록시로 이동했는지 확인한 후 목록 상자에서
는 ME가 :) 난`그것에 2 일 앉아 도와주세요 (하지만 여전히 다른 사람의 봇은 백그라운드에서 작동) 그리고 당신이 변경되고있는, ktory
에 대한 액세스 주위에 고정되지
CheckForIllegalCrossThreadCalls = false; ... 아마 좋은 생각이 아닙니다. 아마도 스레드에서 컨트롤에 올바르게 액세스하는 방법을 조사하고 싶을 것입니다. 위임자, 호출 등 –
10 개의 스레드 만 작성하여 해당 함수를 호출하므로 10 회만 실행됩니다. 또한,'ktory + = 1;'은 threadsafe가 아닙니다. 코드의 나머지 부분을 살펴 보지 않았으므로 언급 한 결과가 표시됩니다. – Rob
희망 스팸을 – Poma