簡體   English   中英

在一定的隨機時間間隔后調用方法

[英]Call method after certain random interval of time

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

我已經稍微修改了您的代碼並進行了嘗試。 沒問題。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM