我对编程很陌生,所以这个问题对你来说可能很愚蠢:
for (int i = 0; i < 20; i++)
{
driver[i] = new ChromeDriver(service, options[i]);
}
我正在尝试制作一个网络机器人。它必须打开多个铬窗口(工作良好(
他打开Chrome的部分在第3行。每次打开大约需要5-6秒。
因此,我的问题是,当我初始化ChromeDriver的一个新实例时,即使第一次初始化没有完成,我是否可以继续初始化另一个Chrome Driver实例(或其他代码(?
tldr;如果初始化需要时间,如何同时初始化多个实例。
我感谢的任何帮助
您可以在C#中运行多个线程,这意味着您可以并行运行代码,而不需要等待一个方法完成另一个方法运行。
建议使用System.Threading.Tasks
命名空间中的方法,尤其是Task.Run
。
尽管在你的情况下,我建议考虑类似的:
Parallel.For(0, 20, i =>
{
driver[i] = new ChromeDriver(service, options[i]);
});
您可以使用Task。运行
var task = Task.Run(() => new ChromeDriver(service, options[i]));
整体代码如下所示:
var taskList = new List<Task>(20);
for (int i = 0; i < 20; i++)
{
var task = new ChromeDriver(service, options[i]);
taskList.Add(task);
}
//at the and wait all tasks to finish.
await Task.WaitAll(taskList.ToArray());