是否有Windows Phone 7的计时器控件?

时间:2010-07-16 14:13:42

标签: windows-phone-7

我正在尝试第一次写一个win phone 7应用程序 - 是否有一个类似于winforms的计时器控件?或者有没有办法获得这种类型的功能?

2 个答案:

答案 0 :(得分:46)

您可以使用System.Windows.Threading.DispatcherTimer。

System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 0, 0, 500); // 500 Milliseconds
dt.Tick += new EventHandler(dt_Tick);
dt.Start();

void dt_Tick(object sender, EventArgs e)
{
        // Do Stuff here.
}

答案 1 :(得分:7)

DispatchTimer和Timer一样是个不错的选择。

值得熟悉差异和评估哪种更适合你。

便利性(UI更新的DispatchTimer)或准确性(可预测性的计时器)是决定的关键。

Timer Class (System.Threading)

DispatcherTimer Class (System.Windows.Threading)

  

重新评估DispatcherTimer   每个DispatcherTimer循环的顶部。

     

不保证定时器可以执行   恰好在时间间隔发生时,   但他们保证不会执行   在时间间隔发生之前。这个   是因为DispatcherTimer操作   放在DispatcherTimer上   像其他操作一样排队。当。。。的时候   DispatcherTimer操作执行是   依赖于其他工作   队列及其优先级。

     

如果使用System.Threading.Timer,   值得注意的是Timer运行   在不同的线程上然后是用户   接口(UI)线程。为了   访问UI线程上的对象,它是   必须将操作发布到   UI线程的DispatcherTimer   使用Dispatcher.BeginInvoke。这是   使用时不必要   DispatcherTimer。