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