运行 命令每秒但必须等待完成执行

Run command every second but must wait done execute

我想运行在程序运行ning时循环, 但是当它 运行 循环时,在循环内部,有一些代码要执行, 我想要的是,在循环内执行代码后循环,它会延迟 500 毫秒。

Timer myTimer = new Timer();
myTimer.Elapsed += new ElapsedEventHandler(DisplayTimeEvent);
myTimer.Interval = 1000; // 1000 ms is one second
myTimer.Start();

public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
    // code here will run every second
    Random rnd = new Random();
    int rnd2 = rnd.Next(500,2000);
    System.Threading.Thread.Sleep(rnd2);
}

所以,里面执行代码后的循环。

假设我理解这个问题,您正在寻找一种方法来在启动 DisplayTimeEvent 方法后停止计时器并在完成后重新启动。
虽然从你的问题中不清楚你是否使用 System.Windows.Forms.Timer or System.Timers.Timer,但它们都有一个你可以使用的 Stop() 方法:

public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
{
myTimer.Stop();
// your code goes here
myTimer.Start();
}