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

本文关键字:等待 执行 运行 命令 每秒钟 | 更新日期: 2023-09-27 17:50:05

我想在程序运行时运行循环,但是当它在循环内运行时,有一些代码要执行,我想要的是,循环后,它执行循环内的代码,它将延迟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还是System.Timers.Timer,但它们都有一个Stop()方法,你可以使用:

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