[英]C# WP7 singleton timer
我的WP7应用程序中有一个Singleton计时器,但是我不知道如何在每次计时器滴答时使它更新文本块...是否有办法获取计时器滴答的事件处理程序,然后使用正确的方法更新文本框时间?
这是我尝试使用但无法使用的内容:
public _1()
{
InitializeComponent();
Singleton.TimerSingleton.Timer.Tick += new EventHandler(SingleTimer_Tick);
}
void SingleTimer_Tick(object sender)
{
textBlock1.Text = Singleton.TimerSingleton.TimeElapsed.TotalSeconds.ToString();
}
这是我的Timer.cs SingleTon:
void SingleTimer_Tick(object sender)
上面的方法应该是这样的
void SingleTimer_Tick(object sender, EventArgs e)
当您提出问题时,请正确使用术语并提供更多详细信息。 它可以帮助您更快地找到正确的答案。 例如,当您说“应用程序不会让我打电话...”时,您实际上的意思是编译器给您一个错误。
方法SingleTimer_Tick在非GUI线程上执行。 呼叫
textBlock1.Invoke(()=> textBlock1.Text = Singleton.TimerSingleton.TimeElapsed.TotalSeconds.ToString());
我不确定您的计时器是哪种类型。 一些用于在线程池线程上引发事件,其他用于在GUI线程上引发事件。 如果您可以告诉我们您的计时器类型(System.Timers.Timer,System.Threading.Timer等),那么我可以告诉您它的用途。 但是,如果我没有记错的话,Tick用于GUI计时器,而Elapsed用于其他计时器-我可能是错的。
冒着光顾您的风险,我要问您是否启动了计时器:)通常,调用Start()或将Enabled设置为true都会启动计时器对象。 如果您希望计时器已经在运行,则应该能够在挂接事件之前检查诸如Enabled之类的属性以断言该计时器正在运行。
除此之外,我还要进行一些printf样式的调试,以检查该事件是否确实在引发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.