首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WP7应用程序中的DispatcherTimer行为

WP7应用程序中的DispatcherTimer行为
EN

Stack Overflow用户
提问于 2011-08-11 00:14:41
回答 1查看 1.7K关注 0票数 1

我正在为WP7编写一个音频录制应用程序。在我的ViewModel类中有一个DispatcherTimer对象,当记录发生时,它计算经过的秒数以向用户显示记录的长度。我对这个应用程序有以下问题:

DispatcherTimer的计时间隔设置为一秒(1000)毫秒。

当我按下start按钮时,DispatcherTimer启动。当我按下停止按钮时,DispatcherTimers线程退出。(稍等片刻,我想我不是故意的)

如果我在快速按下stop后按下了start按钮(间隔时间不到一秒),我的DispatcherTimer就无法再次启动,因为它还没有停止。(它的线程尚未退出)

基本上,我最关心的是为什么DispatcherTimer必须等到它的滴答时间到了,才意识到它已经停止,并且它创建的用于执行滴答的线程必须退出?

我该如何解决这个问题呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-11 00:22:23

不能保证DispatcherTimers在时间间隔发生时准确执行,但保证它们不会在时间间隔发生之前执行。这是因为DispatcherTimer操作和其他操作一样被放在DispatcherTimer队列中。何时执行DispatcherTimer操作取决于队列中的其他作业及其优先级。

参考:http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatchertimer(v=VS.95).aspx

最好使用System.Threading.Timer,它是一个在单独线程上触发的timer类。这对于纯粹的数字计时是很好的,在这种情况下你不需要更新UI,等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7014166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档