Windows phone 7 WP7应用程序中的Dispatchermer行为

Windows phone 7 WP7应用程序中的Dispatchermer行为,windows-phone-7,dispatchertimer,Windows Phone 7,Dispatchertimer,我正在为WP7编写一个录音应用程序。我的ViewModel类中有一个Dispatchermer对象,当录制发生时,它会计算所用的秒数,以向用户显示录制的长度。我的应用程序存在以下问题: 调度员的滴答声间隔设置为1秒(1000)毫秒 当我按下开始按钮时,Dispatcher启动。 当我按下停止按钮时,Dispatchers线程退出。(等一下,我想我不是故意的) 如果我在快速按下stop(停止)后按下start(开始)按钮(中间不到一秒钟),我的调度程序将无法再次启动,因为它尚未停止。(它的线程尚未

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

调度员的滴答声间隔设置为1秒(1000)毫秒

当我按下开始按钮时,Dispatcher启动。 当我按下停止按钮时,Dispatchers线程退出。(等一下,我想我不是故意的)

如果我在快速按下stop(停止)后按下start(开始)按钮(中间不到一秒钟),我的调度程序将无法再次启动,因为它尚未停止。(它的线程尚未退出)

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


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

调度员不保证在时间间隔发生时准确执行,但保证在时间间隔发生前不执行。这是因为Dispatcher操作与其他操作一样放置在Dispatcher队列上。调度程序操作的执行时间取决于队列中的其他作业及其优先级

参考:


您最好使用,这是一个在单独线程上触发的计时器类。这适用于纯数字计时,您不需要尝试更新UI等。

调度程序不保证在时间间隔发生时准确执行,但保证在时间间隔发生之前不执行。这是因为Dispatcher操作与其他操作一样放置在Dispatcher队列上。调度程序操作的执行时间取决于队列中的其他作业及其优先级

参考:


您最好使用,这是一个在单独线程上触发的计时器类。这适用于纯数字计时,您不需要尝试更新UI等。

正在执行和提前取消其执行不是一回事。正在执行和提前取消其执行不是一回事。