代码之家  ›  专栏  ›  技术社区  ›  Nils

有Windows Phone 7的计时器控件吗?

  •  23
  • Nils  · 技术社区  · 16 年前

    我第一次尝试写一个WinPhone7应用程序-是否有一个类似于WinForms的计时器控件?或者有什么方法可以获得这种类型的功能?

    2 回复  |  直到 15 年前
        1
  •  46
  •   Jace Rhea    16 年前

    您可以使用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.
    }
    
        2
  •  7
  •   Mick N    15 年前

    DispatchTimer和Timer是一个很好的选择。

    了解这些差异并评估哪些更适合您,这是值得的。

    方便性(UI更新的DispatchTimer)或准确性(可预测性的Timer)是决定的关键。

    Timer Class (System.Threading)

    DispatcherTimer Class (System.Windows.Threading)

    调度员计时器的重新评估时间为 每个调度程序计时器循环的顶部。

    定时器不能保证执行 当时间间隔发生时, 但他们保证不会执行 在时间间隔发生之前。这个 是因为调度程序计时器操作 放置在调度程序计时器上 像其他操作一样排队。当 调度程序计时器操作执行为 依靠其他工作 排队及其优先级。

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

    推荐文章