1

我想在我的应用程序中实现一些计时器。我的目标是提供一种简单的方法来每 x 秒/分钟执行一些功能,所以我考虑实现一个 1 秒、5 秒和 15 秒计时器。我想每 1 秒更新一次的第一件事是内置时钟(不知道在 c# 中是否有任何其他解决方案,在 c++ 中使用此方法)另一种用途是例如同步函数等,应执行每 xx 秒。

我的问题是是否有关于这个主题的任何有用的教程?这是我第一次想在我的一个应用程序中实现这样的计时器系统,我不知道是否有什么需要记住的。

提前感谢您的任何回答:)

4

2 回答 2

4

您可以使用各种类型的 Timer 类。

在 WPF 中,如果这是为了更新与用户界面相关的内容,您通常会使用DispatcherTimer.

您也可以使用System.Timers.Timeror System.Threading.Timer,但要意识到这将在后台线程上触发,而不是在主用户界面线程上。这通常是有益的(如果 Timer 的事件或回调中发生“工作”,您无需等待或阻止您的 UI Tick),但您还必须记住将任何与 UI 线程相关的用户界面编组。

于 2012-09-05T15:27:46.820 回答
1
    // This timer runs on UI thread
    System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
    timer.Interval = System.TimeSpan.FromSeconds(1);
    timer.Tick += timer_Tick;
    timer.Start();

    void timer_Tick(object sender, System.EventArgs e)
    {
        Title = System.Windows.Input.Keyboard.FocusedElement.GetType().ToString();
    }
于 2012-09-05T15:27:32.900 回答