用秒表计时,间隔10秒
本文关键字:间隔 10秒 | 更新日期: 2023-09-27 18:15:16
我有一段使用stopwatch的代码,但是我可以通过使用stopwatch类每10秒运行一些逻辑。不幸的是,我不确定这样做的最好方法。基本上,这就是我要做的:
Stopwatch.start();
if(Stopwatch == 10seconds)
Do something here!
Else
Do something else!
有人能帮忙吗??
这根本不是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)。