如何在特定时间后执行下一个循环

本文关键字:执行 下一个 循环 定时间 | 更新日期: 2023-09-27 17:59:43

在foreach循环中,如何在第一次循环5秒后执行第二次循环,然后在第二次环路3秒后执行第一次循环?

第一回路

5秒后

第二环路

3秒后

第三环路

当我以windows形式进行Webbrowser自动化时,有许多链接可以自动点击,点击链接后,它会自动将文本插入文本框并点击提交按钮。流程:

foreach (HtmlElement ahref in ahrefs)
{
    ahref.InvokeMember("click");
    Application.DoEvents();
    txtboxPrice.SetAttribute("value", "100");
    btnSubmit.InvokeMember("click");
 }

我现在面临的问题是,循环太快,直到Webbrowser无法完成txtboxprice.settribute和btnsubmit.invokemember的实现,它已经点击了下一个循环的ahref。

因此,我需要触发时间控制,以确保在进行下一个循环之前实现txtboxprice.settribute和btnsubmit.invokemember。

如何在特定时间后执行下一个循环

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(..) { }

Thread.Sleep方法在指定的毫秒数内阻塞当前线程。

for (int i = 0; i < 5; i++)
{
        Console.WriteLine("Sleep for 2 seconds.");
        Thread.Sleep(2000);
}

您可以进行

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++)
{
....
}

但我想知道你为什么要做这样的事。