それぞれのスレッドで異なるURLを実行したい。Cで2つのスレッド名を持つ2つの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}が2つあります。リンク1を開くのはreddit.comだけです。
スレッドを使用するときにデバッグを試すのに多くの時間がかかります。
ループを明確にすることはできますか?あなたは決してdc変数を使用していません。より多くのコードを使用する前に、あるスレッドのコードをテストしてください。 –
私の質問が更新されました。私は不要なコードを削除することを忘れないでください。 – vanloc
'idx'をインクリメントしないので、同じオブジェクト' browser_array [idx] 'が各行に使われます。 –