在同一个程序中的多个定时器

在同一个程序中的多个定时器

问题描述:

我想用2个定时器在不同的时间间隔运行一个程序。目前我有1个计时器工作正常,我需要有另一个运行。我对于工作的第一定时器的代码如下所示:在同一个程序中的多个定时器

private void startButton_Click(object sender, RoutedEventArgs e) 
    { 
     Random rand = new Random(); 
     int ranMin = rand.Next(1,24); 
     int ranSec = rand.Next(0, 59); 


     System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); 
     dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); 
     dispatcherTimer.Interval = new TimeSpan(0, ranMin, ranSec); 
     dispatcherTimer.Start(); 

     min.Content = ranMin; 
     sec.Content = ranSec; 

     openP(); 

    } 

    private void dispatcherTimer_Tick(object sender, EventArgs e) 
    { 
     **code for timer in here 
    } 

这工作得很好,但现在我需要另一个定时器以不同代码1秒区间运行,当我试图仅通过所有使dispatcherTimer复制此进入dispatcherTimer2我遇到了错误。

+1

提示,以帮助自己,如果你发现你打字的话运行到错误并且不要将错误放在你很难回答你的问题上,而且你不太可能得到答案。所以请把你遇到的错误放到你的问题中。 – 2014-09-19 02:52:08

+0

请避免在标题中添加标签,并在您的帖子中感谢您的提示。另外请注意,“visual studio”标签用于与VS或与VS直接相关的其他功能集成,不适用于VS可以编写的代码(因为它适用于本网站上99%的问题)。 – 2014-09-19 03:12:03

+0

备注:样本中使用“随机”的方式是随机的,不会产生随机结果。请检查出与您的代码问题的最高评价问题:[随机不随机](http://*.com/questions/767999/random-number-generator-only-generating-one-random-number) – 2014-09-19 03:13:18

我不知道你在做什么(你应该张贴的错误),但与你提供的代码了以下工作:

private void startButton_Click(object sender, RoutedEventArgs e) 
     { 
      Random rand = new Random(); 
      int ranMin = rand.Next(1,24); 
      int ranSec = rand.Next(0, 59); 


      System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer(); 
      dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick); 
      dispatcherTimer.Interval = new TimeSpan(0, ranMin, ranSec); 
      dispatcherTimer.Start(); 

      // New timer 
      System.Windows.Threading.DispatcherTimer dispatcherTimer2 = new System.Windows.Threading.DispatcherTimer(); 
      dispatcherTimer2.Tick += new EventHandler(dispatcherTimer2_Tick); 
      dispatcherTimer2.Interval = new TimeSpan(0, 0, 1); 
      dispatcherTimer2.Start(); 

      min.Content = ranMin; 
      sec.Content = ranSec; 

      openP(); 

     } 

     private void dispatcherTimer_Tick(object sender, EventArgs e) 
     { 
      //code for timer in here 
     } 

     private void dispatcherTimer2_Tick(object sender, EventArgs e) 
     { 
      //code for timer2 in here 
     } 
+0

啊,那工作我犯了一个愚蠢的错误,行dispatcherTimer2.Tick + =新的EventHandler(dispatcherTimer2_Tick);最后一点是给出了一个错误,说它不存在,但那是因为我没有在下面的私人空白行....无论如何,它现在很好,谢谢你的帮助 – crams 2014-09-19 03:07:42

+0

@ user3524727这些事情发生! – JuStDaN 2014-09-19 03:10:50