C# 在一定的随机时间间隔后调用方法
我有5个方法,我需要在随机间隔(1到3秒)后调用它们。假设第一个方法在1秒后被调用,然后第二个方法在2.3秒后被调用,下一个方法在1.5秒后被调用,等等。我使用定时器做了如下操作C# 在一定的随机时间间隔后调用方法,c#,winforms,C#,Winforms,我有5个方法,我需要在随机间隔(1到3秒)后调用它们。假设第一个方法在1秒后被调用,然后第二个方法在2.3秒后被调用,下一个方法在1.5秒后被调用,等等。我使用定时器做了如下操作 System.Windows.Forms.Timer mytimer = new System.Windows.Forms.Timer(); mytimer.Tick += new EventHandler(TimerEventProcessor); Random rand = new Random(); in
System.Windows.Forms.Timer mytimer = new System.Windows.Forms.Timer();
mytimer.Tick += new EventHandler(TimerEventProcessor);
Random rand = new Random();
int fortimerinterval = rand.Next(1000, 3000);
mytimer.Interval = fortimerinterval;
mytimer.Enabled = true;
mytimer.Start();
public void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
{
fortimerinterval = rand.Next(1000, 3000);
mytimer.Interval = fortimerinterval;
first time call function1, then call function2
//this is main theme, so im not giving whole code here
}
但计时器间隔在获得第一个随机值后保持不变。似乎每次调用TimerEventProcessor时,timerinterval值都不会更改。我该怎么做?或者,如果有任何其他简单的方法可以做到这一点。谢谢我对你的代码做了一些修改并试用了一下。它工作正常
Random rand = new Random();
Timer mytimer = new Timer();
private void fireTimerClick(object sender, EventArgs e)
{
mytimer.Tick += new EventHandler(TimerEventProcessor);
mytimer.Interval = rand.Next(1000, 3000);
mytimer.Enabled = true;
mytimer.Start();
}
public void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
{
mytimer.Interval = rand.Next(1000, 3000);
System.Diagnostics.Debug.WriteLine(DateTime.Now);
}
您可以通过“调试输出”窗口验证这一点fireTimerClick
只是一个按钮单击事件处理程序