我需要为我的Windows 8商店应用程序计算得非常快。所以我将间隔设置为10个Ticks。因为我们每秒有10,000,000个滴答,这应该足够了。但结果我只能得到30个左右的刻度。我如何获得更快的计时器?
我的计时器代码(和控制计时器):
int GLOBAL_counter = 0;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromTicks(10);
timer.Tick += timer_Tick;
timer.Start();
DispatcherTimer timerControl = new DispatcherTimer();
timerControl.Interval = TimeSpan.FromSeconds(1);
timerControl.Tick += timer_Tick_timerControl;
timerControl.Start();
}
private void timer_Tick(object sender, object e)
{
GLOBAL_counter++;
}
private void timer_Tick_timerControl(object sender, object e)
{
Label1.Text += GLOBAL_counter.ToString() + "\r\n";
GLOBAL_counter = 0;
}
答案 0 :(得分:1)
来自DispatcherTimer类的MSDN描述:
不保证定时器在时间间隔内完全执行 发生,但保证在时间之前不执行 间隔发生。这是因为放置了DispatcherTimer操作 与其他操作一样在Dispatcher队列中。当。。。的时候 DispatcherTimer操作的执行依赖于其他作业 队列及其优先级。