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