问题标签 [timer]

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 投票
2 回答
6695 浏览

java - Android中的定时弹出

我正在为 Android 创建一个匹配游戏,当用户获得匹配时,应该会弹出一个对话框,上面写着“匹配!” 我无法弄清楚如何做到这一点。如果我使用 Thread.currentthread().sleep,则对话框永远不会出现。

什么都没有发生 - 程序只是挂起一秒钟。我希望它只弹出 1 秒钟,或者如果有另一种弹出类型的东西,那也很好。

0 投票
1 回答
251 浏览

multithreading - 为多个交互计时器设计

我正在设计一个在组件层次结构的所有级别都需要计时器的系统。多个计时器可能同时处于活动状态,但它们需要相互交互(停止组件的计时器会停止其后代的计时器,而启动组件的计时器会启动其祖先的计时器并停止其兄弟的计时器)。

每个计时器都有不同的限制,并将向侦听器发送滴答、开始、停止和过期事件。

这仍处于设计阶段的早期(实现语言仍未确定),但我想避免线程混乱。有什么建议吗?

0 投票
6 回答
110332 浏览

c - C中的最佳计时方法?

对具有高分辨率和可移植性的代码段进行计时的最佳方法是什么?

是否有具有跨平台解决方案的标准库?

0 投票
21 回答
693179 浏览

python - 每 x 秒重复执行一个函数的最佳方法是什么?

我想永远每 60 秒在 Python 中重复执行一个函数(就像 Objective C 中的NSTimer或 JS 中的 setTimeout 一样)。此代码将作为守护程序运行,实际上就像使用 cron 每分钟调用一次 python 脚本一样,但不需要用户设置。

这个关于在 Python 中实现的 cron 的问题中,解决方案似乎有效地只是sleep() x 秒。我不需要如此高级的功能,所以也许这样的东西会起作用

这段代码有任何可预见的问题吗?

0 投票
7 回答
43984 浏览

c# - 如果您在应用程序中使用 System.Timers.Timer,是否有必要处理它?

我在我的应用程序的一个类中使用 System.Timers.Timer 类。我知道 Timer 类具有从实现 IDisposable 接口的父 Component 类继承的 Dispose 方法。下面的类的实例在我的应用程序生命周期中被创建了很多次;它们中的每一个都有一个 Timer 类的实例,该实例在类的生命周期中不断地生成 Elapsed 事件。我应该在使用 Timer 类来处理计时器对象的类中实现 IDisposable 接口吗?(我见过根本不这样做的代码)。如果我像这样使用下面的类,我担心一些非托管资源不会被释放:

班上:

0 投票
3 回答
1806 浏览

.net - System.Windows.Forms.Timer 性能

我们有一个应用程序,其中包含许多基于 System.Windows.Forms.Timer 频繁更新的用户控件。我可以安全地将 Timer 实例添加到每个控件的性能上吗?或者我应该有一个一直运行的单例计时器,供所有实例使用吗?幕后究竟发生了什么?每个计时器都会有一个额外的线程(用于计数)吗?

0 投票
3 回答
7037 浏览

c++ - CreateTimerQueueTimer 回调和竞争条件

我在我的应用程序中使用计时器队列,并将指向我自己的 C++ Timer 对象之一的指针作为“参数”传递给回调(在 CreateTimerQueueTimer 中)。然后我在回调中调用对象的虚方法。

Timer 对象的析构函数将确保使用 DeleteTimerQueueTimer() 取消计时器。

然而,有一个微妙的竞争条件,如果回调已经被调用,但定时器对象在调用 TimedOut()之前被销毁,应用程序崩溃,因为回调调用了不存在对象上的虚拟方法。或者更糟糕的是,当它被删除时。

我确实有互斥锁来控制多线程调用,但我仍然遇到问题。

使用对象指针作为回调参数真的是个好主意吗?由于不能保证线程之间的同步,它对我来说只是闻起来很糟糕。

有更好的解决方案吗?其他人做什么?

发生的一件事是保留一组指向每个 Timer 实例的指针(在构造函数中添加,在析构函数中删除)。但我认为这行不通,因为如果 Timer 派生自,我们只会从基类析构函数的集合中删除指针;如果我们已经开始销毁派生对象,损害已经造成。

干杯。

0 投票
3 回答
4985 浏览

c# - 在 C# 中,我应该将计时器的引用保存在哪里?

的文档System.Threading.Timer说我应该为它保留一个实时参考,以避免它被垃圾收集。但是我应该在哪里做呢?我main的很简单,我不知道在哪里保留参考:

我考虑将引用保存在类中的一个static字段中Program,假设static在应用程序结束之前不会收集这些字段。但我不确定这是最好的方法,所以我很感激你的建议。

0 投票
3 回答
33791 浏览

.net - WPF .NET 每分钟触发一个事件的最佳方式

我有一个应用程序需要每分钟检查一次数据库表。该表按一天中的时间编制索引,因此应用程序需要每分钟运行一次此检查。

这样做的最好方法是什么?我可以创建一个后台工作线程,但如果我在每次检查后将其设置为休眠 60 秒,我最终会因为调用检查的开销而错过一分钟。

我是否记得我检查的那一刻,然后检查,每 15 秒说一次,如果该分钟发生了变化,然后执行检查。

还是我应该使用其他方法?

我正在使用 WPF、VS2008 和 VB.NET

TIA,

西蒙

0 投票
6 回答
25756 浏览

c# - 使用线程时内存泄漏

我似乎在这段代码中有内存泄漏。它是一个控制台应用程序,它创建了几个类(WorkerThread),每个类都以指定的时间间隔写入控制台。Threading.Timer 用于执行此操作,因此写入控制台是在单独的线程中执行的(在从 ThreadPool 获取的单独线程中调用 TimerCallback)。更复杂的是,MainThread 类与 FileSystemWatcher 的 Changed 事件挂钩;当 test.xml 文件更改时,会重新创建 WorkerThread 类。

每次保存文件时(每次重新创建 WorkerThread 并因此重新创建 Timer),任务管理器中的内存都会增加(Mem Usage,有时还会增加 VM Size);此外,在 .Net Memory Profiler (v3.1) 中,WorkerThread 类的 Undisposed Instances 增加了两个(但这可能是一个红鲱鱼,因为我读过 .Net Memory Profiler 有一个错误,它很难检测到处置的类。

无论如何,这是代码 - 有人知道出了什么问题吗?

编辑:我已经将类创建移出 FileSystemWatcher.Changed 事件处理程序,这意味着 WorkerThread 类总是在同一个线程中创建。我为静态变量添加了一些保护。我还提供了线程信息以更清楚地显示正在发生的事情,并且一直在使用 Timer 与使用显式线程进行交换;但是,内存仍在泄漏!Mem Usage 一直在缓慢增加(这仅仅是由于控制台窗口中的额外文本吗?),并且当我更改文件时 VM Size 会增加。这是最新版本的代码:

编辑这似乎主要是控制台使用内存的问题,因为您写入它。显式编写的线程仍然存在增加内存使用量的问题。请参阅下面的答案