用秒表计时,间隔10秒

本文关键字:间隔 10秒 | 更新日期: 2023-09-27 18:15:16

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

Stopwatch.start();
if(Stopwatch == 10seconds)
  Do something here!
Else
  Do something else!

有人能帮忙吗??

用秒表计时,间隔10秒

这根本不是StopWatch的作用;秒表是为性能测试做高精度计时的。这就是为什么它在Diagnostics命名空间中。

如果你想要每十秒发生一次,那么创建一个Timer并为tick事件创建一个事件处理程序。事件处理程序将在每次计时器关闭时被调用。

这不是Stopwatch类的作用。使用System.Timer.Timer并订阅Elapsed事件

你应该使用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) ),但是,你应该避免使用这个选项。通常,这不是一个好事情(tm) MSDN线程。睡眠在这里
       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
       }

使用计时器代替。看一下喜欢的MSDN页面-它包含一个完整的例子。

编辑:不清楚你想做什么。如果您只想让代码等待10秒,那么您可以使用System.Threading.Thread.Sleep(10000)。