每秒运行一次命令,但必须等待执行

时间:2015-05-21 04:50:50

标签: c# loops timer

我想在程序运行时运行循环, 但是当它运行循环,内部循环时,有一些代码要执行, 我想要的是,在循环中执行代码后循环,它将延迟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);
}

所以,循环执行后执行代码。

1 个答案:

答案 0 :(得分:0)

假设我理解了这个问题,那么一旦启动DisplayTimeEvent方法,您就会想办法停止计时器,如果完成则重新启动。
虽然您的问题不清楚,如果您使用的是System.Windows.Forms.TimerSystem.Timers.Timer,但他们都可以使用Stop()方法:

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