使用秒表10秒间隔

时间:2011-11-21 21:09:17

标签: c#

我有一段使用秒表的代码,但是我可以使用秒表类每隔10秒运行一些逻辑。不幸的是,我不确定最好的方法。基本上,这就是我想要做的事情:

Stopwatch.start();

if(Stopwatch == 10seconds)

  Do something here!

Else
  Do something else!

任何人都可以帮忙吗?

5 个答案:

答案 0 :(得分:15)

这完全不是StopWatch的用途;秒表用于进行性能测试的高精度定时。这就是它在Diagnostics命名空间中的原因。

如果您希望每十秒钟发生一次,那么创建一个Timer并为tick事件创建一个事件处理程序。每次定时器关闭时都会调用事件处理程序。

答案 1 :(得分:10)

这不是秒表课程的用途。使用System.Timer.Timer并订阅Elapsed event

答案 2 :(得分:3)

你应该使用DispatcherTimer类。

来自MSDN文档的示例代码:

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

//  System.Windows.Threading.DispatcherTimer.Tick handler
//
//  Updates the current seconds display and calls
//  InvalidateRequerySuggested on the CommandManager to force 
//  the Command to raise the CanExecuteChanged event.
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    // Updating the Label which displays the current second
    lblSeconds.Content = DateTime.Now.Second;

    // Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested();
}

当然,您可能希望将时间跨度更改为10秒:

dispatcherTimer.Interval = New TimeSpan(0,0,10);
另一方面,如果你希望你的代码只是坐在那里什么也不做,可以说,10秒,你可以使用Thread.Sleep( new TimeSpan(0,0,10) )但是,你应该避免使用这个选项。它通常不是一件好事({3}}

答案 3 :(得分:1)

请改用Timer。看一下喜欢的MSDN页面 - 它包含一个完整的例子。

编辑:目前尚不清楚你想做什么。如果您只是希望代码等待十秒钟,那么您可以使用System.Threading.Thread.Sleep(10000)

答案 4 :(得分:1)

       System.Timers.Timer timer;

       //Set Timer
       timer = new Sytem.Timers.Timer();
       timer.Tick += new EventHandler(timer_tick);
       timer.Interval = 10000; //10000 ms = 10 seconds
       timer.Enabled = true;


       public void timer_tick(object source, EventArgs e)
       {
             //Here what would you like to do every 10000 ms
       }