WPF 调度程序计时器滴答冻结了我的应用程序
我在使用 WPF 调度程序计时器时遇到了一些问题。在每个计时器滴答声中,我的应用程序都会冻结一会儿(直到计时器滴答声方法完成)。这是我的代码:
private DispatcherTimer _Timer = new DispatcherTimer();
_Timer.Tick += new EventHandler(_DoLoop);
_Timer.Interval = TimeSpan.FromMilliseconds(1500);
_Timer.Start();
有什么方法可以避免这种情况并使我的应用程序顺利运行吗?
I've got a little problem using WPF Dispatcher Timer. On each timer tick my application freezes for a moment (until timer tick method finishes). This is my code:
private DispatcherTimer _Timer = new DispatcherTimer();
_Timer.Tick += new EventHandler(_DoLoop);
_Timer.Interval = TimeSpan.FromMilliseconds(1500);
_Timer.Start();
Is there any way to avoid this and have my application run smoothly?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是预料之中的。你的 _DoLoop 与 UI 在同一个线程上执行。
来自 DispatcherTimer 类 MSDN
如果您需要执行耗时的计算,请在另一个线程上运行它以保持 UI 响应。
This is expected. your _DoLoop is executed on the same thread as UI.
from DispatcherTimer Class MSDN
If you need to execute time consuming computations run it on another thread to keep UI responsive.