在foreach循环中,如何在第1次循环5秒后执行第2次循环,然后在第2次循环3秒后执行第3次循环?
第一循环
5秒后
第二次循环
3秒后
第3次循环
当我在Windows窗体中进行Webbrowser自动化时, 有很多链接可以自动点击,单击链接后,它会自动将文本插入文本框并单击提交按钮。 过程:
foreach (HtmlElement ahref in ahrefs)
{
ahref.InvokeMember("click");
Application.DoEvents();
txtboxPrice.SetAttribute("value", "100");
btnSubmit.InvokeMember("click");
}
我现在面临的问题是,循环太快,直到Webbrowser无法完成实现txtboxprice.setattribute和btnsubmit.invokemember,它已经点击了下一个循环的ahref。
因此,我需要触发时间控制,以确保在继续下一个循环之前实现txtboxprice.setattribute和btnsubmit.invokemember。
答案 0 :(得分:5)
using System.Threading;
foreach(..) { } // your for or foreach or any code you want
Thread.Sleep(5000); // pause the current thread on x milliseconds
foreach(..) { }
Thread.Sleep(3000);
foreach(..) { }
答案 1 :(得分:2)
Thread.Sleep方法将当前线程阻塞指定的毫秒数。
for (int i = 0; i < 5; i++)
{
Console.WriteLine("Sleep for 2 seconds.");
Thread.Sleep(2000);
}
答案 2 :(得分:0)
你可以做到
for(int i=0;i<number_of_times;i++)
{
....
if(i == number_of_times - 1)
Thread.Sleep(5000);//time in millsecond, namespace System.Threading
}
for(int i=0;i<number_of_times;i++)
{
....
if(i == number_of_times - 1)
Thread.Sleep(3000);
}
for(int i=0;i<number_of_times;i++)
{
....
}
但我想知道你为什么要做这样的事情。