如何用C#设置计时器?

如何用C#设置计时器?,c#,xaml,timer,windows-8.1,C#,Xaml,Timer,Windows 8.1,在C#中,我想在进入页面时设置一个计时器,然后开始10秒倒计时 如果用户未在10秒内完成操作,计时器将被触发,提示“游戏结束” 如果用户在10秒内完成了操作,则计时器设备将被取消 我如何才能做到这一点?使用dispatchermer类。勾选事件处理程序应该有表示游戏结束的代码 : 只要用户刚刚完成操作,就可以调用dispatchermer.Stop()。这将停止计时器。请注意,dispatchermer在这里更可取,因为它会自动将计时器事件保留在UI线程上可能需要的位置(很难从含糊不清的问题中知

在C#中,我想在进入页面时设置一个计时器,然后开始10秒倒计时

如果用户未在10秒内完成操作,计时器将被触发,提示“游戏结束”

如果用户在10秒内完成了操作,则计时器设备将被取消


我如何才能做到这一点?

使用
dispatchermer
类。
勾选
事件处理程序应该有表示游戏结束的代码

:


只要用户刚刚完成操作,就可以调用
dispatchermer.Stop()。这将停止计时器。

请注意,
dispatchermer
在这里更可取,因为它会自动将计时器事件保留在UI线程上可能需要的位置(很难从含糊不清的问题中知道)。但为了完整起见,值得一提的是,在这个需要“一次性”计时器的场景中,除了线程亲和性问题之外,类直接提供了该行为,而不需要在引发第一个事件/回调后停止计时器。我可以得到剩余的时间吗?我想显示剩余时间,精度为0.1秒,但不完全准确。一个选项是将间隔更改为100毫秒,然后为每个刻度增加一个计数器变量。p、 s.如果要执行此操作,请不要在tick函数中调用
dispatchermer.Stop()
。要计算剩余时间,请在启动计时器时存储
DateTime
变量。然后,无论何时,只要您愿意,都可以找到
DateTime.Now
和您以前存储的
DateTime
对象之间的差异,以获取经过的时间。@韩庆阳您是否尝试过这样做来更改准确性?
DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0,0,10);
dispatcherTimer.Start();

private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    ((DispatcherTimer)sender).Stop();
    //Your code here
}