2015-07-20 103 views
0

我需要在應用程序運行時在應用程序中執行一些操作。我把它放在調度員那裏,按照給定的時間間隔工作。但現在我想隨機化事情。DispatcherTimer在WPF中隨機運行

我想設置隨機時間間隔。

dTSettings.Tick += new EventHandler(dTSettings_Tick); 
dTSettings.Interval = new TimeSpan(0, SetRandomTimer(), 0); 
dTSettings.Start(); 

該怎麼辦?

+1

「但現在我想隨機化事物」 - 您需要提供更多細節。仔細考慮*正確*你的意思是「隨機化」在這裏。有很多不同的潛在意義。 –

+0

難道你不能簡單地觸發計時器「足夠頻繁」,然後隨機決定是否要在事件處理程序中執行某些操作? –

回答

0
private DispatcherTimer _timer = new DispatcherTimer(); 
private Random rand = new Random(); 

public void InitAndStartTimer() 
{ 
    _timer.Tick += dispatcherTimer_Tick; 
    _timer.Interval = TimeSpan.FromSeconds(rand.Next(1, 10)); // From 1 s to 10 s 
    _timer.Start(); 
} 

private void dispatcherTimer_Tick(object sender, EventArgs e) 
{ 
    _timer.Interval = TimeSpan.FromSeconds(rand.Next(1, 10)); // From 1 s to 10 s 
    // Do your work. 
}