运行 命令每秒但必须等待完成执行
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();
}
我想运行在程序运行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();
}