在 C# 中运行两个具有两个线程名称的 URL
本文关键字:两个 URL 线程 运行 | 更新日期: 2023-09-27 17:55:40
我希望每个线程运行一个不同的 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
是数据表包含所有链接。
示例:我有两个链接 { 0: google.com, 1: reddit.com }。它只有打开的链接 1 是 reddit.com。
使用 Thread 时,我很难尝试调试。
您可以使用 object[] 将参数传递到线程中。
例如。
static bool start_link(object data)
{
object [] arguments = data as object[];
int idx = (int) arguments[0];
}
Thread t1 = new Thread(start_link) { Name = "Thread 1"};
t1.Start(new object[]{ 0 });