我想在我的应用程序中实现一些计时器。我的目标是提供一种简单的方法来每 x 秒/分钟执行一些功能,所以我考虑实现一个 1 秒、5 秒和 15 秒计时器。我想每 1 秒更新一次的第一件事是内置时钟(不知道在 c# 中是否有任何其他解决方案,在 c++ 中使用此方法)另一种用途是例如同步函数等,应执行每 xx 秒。
我的问题是是否有关于这个主题的任何有用的教程?这是我第一次想在我的一个应用程序中实现这样的计时器系统,我不知道是否有什么需要记住的。
提前感谢您的任何回答:)
您可以使用各种类型的 Timer 类。
在 WPF 中,如果这是为了更新与用户界面相关的内容,您通常会使用DispatcherTimer
.
您也可以使用System.Timers.Timer
or System.Threading.Timer
,但要意识到这将在后台线程上触发,而不是在主用户界面线程上。这通常是有益的(如果 Timer 的事件或回调中发生“工作”,您无需等待或阻止您的 UI Tick
),但您还必须记住将任何与 UI 线程相关的用户界面编组。
// 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();
}