각 스레드가 다른 URL을 실행하게하고 싶습니다.C에서 두 개의 스레드 이름을 가진 두 개의 URL을 실행하십시오.
나는 다음과 같은 코드를 작성 :
static void Main()
{
var t1 = new Thread(new ThreadStart(RegisterLink))
{
Name = "Thread1"
};
t1.Start();
var t2 = new Thread(new ThreadStart(RegisterLink))
{
Name = "Thread2"
};
t2.Start();
t1.Join();
t2.Join();
}
static bool start_Link()
{
int idx = int.Parse(Thread.CurrentThread.Name.Replace("Thread", "")) - 1;
try
{
foreach (DataRow dtRow in dtLink.Rows)
{
link[idx] = dtRow["get_link"].ToString();
browser_array[idx].DeleteAllCookies();
browser_array[idx].GoToUrl(link[idx]);
}
}
}
static void RegisterLink()
{
int idx = int.Parse(Thread.CurrentThread.Name.Replace("Thread", "")) - 1;
try
{
switch (stepRun[idx])
{
case 0:
start_new();
break;
case 1:
compare();
break;
}
}
catch
{
ExitALL();
return;
}
}
dtLink
는 DataTable의 모든 링크가 포함되어 있습니다.
예 : 두 개의 링크 {0 : google.com, 1 : reddit.com}이 있습니다. 링크 1 만 열면 reddit.com입니다.
스레드를 사용할 때 디버그를 시도하는 데 많은 시간을 할애해야합니다.
루프를 명확히 할 수 있습니까? dc 변수는 절대로 사용하지 않습니다. 더 많은 코드를 사용하기 전에 하나의 스레드에 대한 코드를 테스트하십시오. –
내 질문이 업데이트되었습니다. 나는 필요없는 코드를 삭제하는 것을 잊는다. – vanloc
당신은'idx'를 증가시키지 않기 때문에'browser_array [idx]'와 같은 객체가 각 행에 사용됩니다. –