我正在尝试为我的 C#/Xaml 现代 UI 应用程序(Windows 8.1)创建一个计时器。
我已经看过这篇文章: 我们如何在 WinRT 应用程序中设置计时器? 此链接中给出的解决方案对我有用。DispatcherTimer 工作正常。
但我的问题不存在。我不明白为什么这个解决方案不起作用:
我的代码:
//First Try
System.Threading.AutoResetEvent autoEvent = new System.Threading.AutoResetEvent(false);
StatusChecker statusChecker = new StatusChecker(MyList);
System.Threading.TimerCallback tcb = statusChecker.CheckStatus;
//System.Threading.Timer myTimer = new System.Threading.Timer(tcb, autoEvent, 0, 5000);
System.Threading.Timer theTimer = new System.Threading.Timer(CheckStatus, autoEvent, 0, 5000);
我把它放在 MainPage 构造函数中。TimerTick 启动 CheckStatus,后者启动 Debug.WriteLine()。
我相信 Threading.Timer 将设置在与 UI 线程不同的线程中,但是当我按下按钮时,计时器停止工作。
有人知道为什么吗?