不要等待类实例初始化,然后使用代码c#继续



我对编程很陌生,所以这个问题对你来说可能很愚蠢:

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()); 

最新更新