2013-04-01 200 views
0

我有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(); 
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的值都不會改變。我怎樣才能做到這一點?或者如果有其他簡單的方法來做到這一點。謝謝

回答

0

我修改了一下你的代碼,試了一下。它工作正常。

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只是一個按鈕點擊事件處理程序。

相關問題