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

Nil*_*ils 23 windows-phone-7

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

Jac*_*hea 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.
}
Run Code Online (Sandbox Code Playgroud)


Mic*_*k N 7

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

值得熟悉差异并评估哪种更适合您.

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

定时器类(System.Threading)

DispatcherTimer类(System.Windows.Threading)

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

定时器不能保证在时间间隔发生时准确执行,但保证在时间间隔发生之前不执行定时器.这是因为DispatcherTimer操作与其他操作一样放在DispatcherTimer队列中.DispatcherTimer操作执行时依赖于队列中的其他作业及其优先级.

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