问题标签 [dispatchertimer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
507 浏览

windows-phone-7 - wp7中的计时器概念?

我正在使用这个 Timer 。但这个计时器不能完美运行。

例子:

在这个计时器中出现了一些问题。在 1500 毫秒之前运行下一个循环..

任何人都知道更好的计时器比较这个。

告诉我一些想法来做到这一点。

谢谢。

0 投票
4 回答
5110 浏览

c# - DispatchTimer - 如果前一个刻度仍在运行,则防止触发刻度事件

在 Silverlight 应用程序中,我有一段代码必须每 500 毫秒运行一次。我计划使用 DispatcherTimer 来实现这一点(参见下面的代码)。

但是,可能会发生代码块的执行时间超过 500 毫秒(代码块会执行一些 Web 服务调用)。如何确保如果当前正在进行呼叫, DispatcherTimer 不会触发另一个事件?有哪些选择,最好的方法是什么?使用锁?

0 投票
3 回答
5385 浏览

c# - 在自己的匿名 Tick 事件处理程序中停止 DispatcherTimer

这样做是否安全:

0 投票
5 回答
541 浏览

c# - 在 C# 中使用 timer 或 dispatchertimer 每 x 秒通过列表或 dict 枚举

假设我有一个包含 3 个值/键对的字典。

我想遍历这本字典,我想要一个调度程序定时器(或定时器)每 3 秒调用一次带有字典值的 displayText。我怎么做?

更新:

我不能使用 Thread.Sleep(XXX),我不能阻塞线程。我在后台还有其他东西,我不能把它转出来让线程遍布整个地方。

加: http: //msmvps.com/blogs/peterritchie/archive/2007/04/26/thread-sleep-is-a-sign-of-a-poorly-design-program.aspx

0 投票
2 回答
1531 浏览

wpf - 使用 DistpatcherTimer 重复 BackgroundWorker 任务

我正在尝试找出解决此问题的最佳方法。

我有一个 BackgroundWorker,用于在计时器上建立套接字连接。

我想启动建立 TCP 连接的 BackgroundWorker 线程,读取/写入一些数据,然后关闭连接并每 2 秒重复一次。

我想每次都物理地打开/关闭连接,因为我连接的服务器不发送数据并且 readByte 调用暂停等待数据并且在我重置程序之前进程无法继续(因此想要对我的 UI 使用不同的线程)。

目前我正在尝试使用间隔为 2 秒的 DispatcherTimer 来调用 Worker.RunWorkerAsync。当调用 RunWorkerAsync 时, DoEvents 方法运行 - 这是第一次工作正常,但在随后的 DispatcherTimer 滴答声中,我发现前一个线程没有关闭,所以在调用 RunWorkerAsync 时我得到了

“此 BackgroundWorker 当前正忙,无法同时运行多个任务”

我可以实现这一目标的最佳方法是什么?

有没有更好的办法?

编辑:考虑一下。如果我能以某种方式在其中构建一个看门狗会很好,所以如果发现 BackgroundWorker 线程运行超过 2 秒,它就会终止,因为这表明该线程已被 tcp 连接阻塞。

0 投票
1 回答
3227 浏览

silverlight - 在silverlight上造成延迟

我正在制作一个基于回合的 Silverlight 游戏(纸牌游戏)。我想在转弯之间延迟。

我已经尝试过 Thread.Sleep,但它会停止我的 UI。我尝试使用 DispatcherTimer,但它的行为很有趣。有时它有效,有时它跳过。

当我将间隔设置为 3 秒时,我的代码与 DipatcherTimer 完美配合,但是当我将间隔设置为 1 秒时,它开始跳过一些回合。

有没有另一种方法来制造这种延迟?

更新:我刚刚重新启动了我的 Windows,它运行了一段时间。一小时后,我再次尝试,没有更改代码,它开始跳过!我不明白。

0 投票
1 回答
1427 浏览

windows - 如何设置 DispatcherTimer 的优先级?

我正在使用 C# 中的 Silverlight 创建适用于 Windows Phone 7 的应用程序。

我发现很多对 DispatcherTimer(DispatcherPriority) 重载的引用,但我无法在我的代码中设置它(例如 timer = new DispatcherTimer(DispatcherPriority) 告诉我“DispatcherPriority 在当前上下文中不存在”)。

我认为 DispatcherTimer 被 DispatcherTimer(DispatcherPriority) 重载,但是当我在我的代码中使用它时,我看不到对这个构造函数的任何引用。我想尝试将优先级设置为“正常”或“发送”,但我似乎无法实现任何具有优先级的 DispatcherTimer。有什么建议么?

0 投票
1 回答
113 浏览

windows-phone-7 - 计时器并保存其状态

我正在构建一个 Windows Phone 应用程序(基本上它是一个游戏,但我没有使用 XNA,Silverlight 就足够了)。图形基于 DispatcherTimer 移动。我想要做的基本上是每当电话到达时停止计时器,并在通话结束后重新启动它,这样游戏状态就不会丢失。

我试过:

但它不起作用,当电话到达时,它实际上并没有达到这一点。有人有过这样的经历吗?

提前致谢 :)

0 投票
2 回答
394 浏览

windows-phone-7 - DispatcherTimer 未在 AdControl 运行时更新

我有一个简单的应用程序,我正在创建一个使用 aDispatcherTimer作为时间基准的倒数计时器。我为 DispatcherTimer 的 On_Tick 设置了一个事件处理程序(设置为 1 秒间隔)。我有三 (3) 个使用三个不同实例的数据透视页面,AdControl并且所有这些页面都是具有真实 ApplicationID 和 AdUnitID 的“实时”页面。此计时器设置在其中一个数据透视页面上。

我看到的是,当我打开我的应用程序并且 AdControl 启动时,60 秒后,adControl 想要刷新。我的计时器在第一分钟工作正常,然后开始每三秒失去一秒,就像它错过了一个滴答事件(巧合的是,当 adcontrol 每三秒“滚动”到一条新消息时?)。我尝试为 dispatcherTimer 使用后台工作人员,但这似乎对我没有任何帮助。事件处理程序中的代码相当短,只有几个“if-then”语句和几个 textBlock 更新。

其他人看到 AdControl 的类似问题吗?

0 投票
6 回答
5719 浏览

c# - Timer 与 DispatcherTimer 的性能

我没有想到一个特定的场景,但是当我在考虑我可能想要在 DispatcherTimer 上使用 Timer 的场景时,这个问题刚刚闪过我的脑海。

在每当触发计时器事件时我必须执行计算密集型任务,然后对 UI 进行细微修改的场景中,在性能方面是否会更好:

  1. 使用常规 Timer,然后使用应用程序的 Dispatcher 更改 UI
  2. 使用 DispatcherTimer(如有必要,可能在一些异步后台工作人员中进行我的计算密集型工作)。

我的猜测是,尽可能长时间地保持 UI 线程畅通会增强用户体验。如果这可取的,在这种情况下是否有任何我应该注意的问题?

编辑:

我觉得我的问题不够清楚,所以我将尝试添加一个具体的,尽管是虚构的例子。

假设我必须每 2 分钟读取一次大文件,完成后,我必须向 ListBox 添加一个项目。假设读取/处理文件需要 10-15 秒,在此期间我不做任何 UI 工作。对于这样的事情,最好的方法是什么?