- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在编写一个每 10 分钟录制一次音频的 Android 应用程序。我正在使用计时器来做到这一点。但是 schedule 和 scheduleAtFixedRate 有什么区别呢?使用其中一种是否有任何性能优势?
最佳答案
this non-Android documentation 可以很好地解释差异。 :
固定速率计时器 (scheduleAtFixedRate()
) 基于开始时间(因此每次迭代将在 startTime + iterationNumber * delayTime
执行)。
In fixed-rate execution, each execution is scheduled relative to the scheduled execution time of the initial execution. If an execution is delayed for any reason (such as garbage collection or other background activity), two or more executions will occur in rapid succession to "catch up."
固定延迟计时器(schedule()
)基于上一次执行(因此每次迭代将在 lastExecutionTime + delayTime
处执行)。
In fixed-delay execution, each execution is scheduled relative to the actual execution time of the previous execution. If an execution is delayed for any reason (such as garbage collection or other background activity), subsequent executions will be delayed as well.
除此之外,没有任何区别。您也不会发现显着的性能差异。
如果您在想要与其他东西保持同步的情况下使用它,则需要使用 scheduleAtFixedRate()
。 schedule()
的延迟可能会漂移并引入错误。
关于java - Android Timer 时间表与 scheduleAtFixedRate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12684604/
我正在使用计时器以相当长的间隔(2分钟)定期运行事件。一切正常。但是,我希望在创建计时器时立即触发该事件(而不是等待2分钟)。 请注意,我不能仅通过调用方法来执行此操作,因为它需要一些时间才能运行,并
我正在检查一些可怕的遗留代码,这些代码具有 Timer 事件以及一些包含 DoEvents 调用的冗长代码。简化版如下所示: Private Sub tmrProcess_Timer()
我正在尝试创建一个 Windows 窗体应用程序,我想实现一个计时器。 public void timerStart() { DateTime now = DateTime
我正在创建一个新类,以便使 System.Timers.Timer 类更好地满足我的需要。我像这样创建我的新类...... using System.Timers; class BtElapsedEv
我最近一直在检查一些可能的计时器,并且 System.Threading.Timer和 System.Timers.Timer对我来说是必要的(因为它们支持线程池)。 我正在制作一款游戏,我计划使用所
首先我要说的是,与其说这是一个需要解决的问题,不如说这是一个问题。我现在有了解决方案,对我来说一切正常。但是我想知道为什么第一次出现问题。 这是我现在拥有的代码,它的工作方式与我预期的一样:
在本文中:http://msdn.microsoft.com/en-us/magazine/cc164015.aspx作者声明 System.Threading.Timer 不是线程安全的。 从那时起
背景: 我有一个计时器,我用它来跟踪自 serialPort DataReceived 事件被触发以来已经过了多长时间。我正在为此创建自己的解决方案而不是使用内置的超时事件,因为我正在获取连续的数据流
我正在查看 Flutter Timer代码和 cancel() 方法。当我想删除一个计时器时,我可以使用这两行: timer.cancel(); timer = null; 或者我可以这样做: 定时器
我正在尝试使用 C# 中的计时器以五秒的间隔运行一个方法。虽然这段代码似乎不起作用。运行它时我没有收到任何错误,但程序(我在控制台中运行)在 IP.timer1.Start() 之后立即关闭。 tim
我正在尝试使用 C# 中的计时器以五秒的间隔运行一个方法。虽然这段代码似乎不起作用。运行它时我没有收到任何错误,但程序(我在控制台中运行)在 IP.timer1.Start() 之后立即关闭。 tim
我有错误显示: 'Timer' is an ambiguous reference between 'System.Windows.Forms.Timer' and 'System.Threading
在我的应用程序中,我必须定期向“兄弟”应用程序发送心跳。 使用 System.Timers.Timer/Threading.Timer 或使用带有 while 循环和 Thread.Sleep 的线程
我最近遇到了编写 Windows 服务的挑战。我需要定期请求一个 URL 并检查它的可用性。为此,我决定在 OnStart 中初始化一个计时器。服务方法并在 timer_Tick 中完成所有工作事件。
看来 System.Timers.Timer 实例通过某种机制保持事件状态,但 System.Threading.Timer 实例则不然。 示例程序,具有定期System.Threading.Time
我做了一个 goog.Timer对象 ( http://closure-library.googlecode.com/svn/docs/class_goog_Timer.html ) 与 new go
当您处理“原始”.net 计时器时,您可以传入等待句柄以在 Win32 计时器被销毁后调用,并且您可以假设您的回调不会被调用。 (并且计时器将被 GC 视为“死”) 如何使用 System.Timer
我想让 deoplete 自动完成建议弹出得更快,这需要设置 g:deoplete#auto_complete_delay help 说这需要 +timers 支持。如何在配置中启用此计时器? 谢谢!
我想知道是否有合理的方法来确定 Timers.Timer 对象的负载能力?或者,更确切地说,线程功能。有人知道使用 Timer 类启动大量(数百个)线程是否有任何问题? 编辑:为了工作,我们将启动一些
我正在创建一个 WindowsService,它的 Timer 绑定(bind)到具有无限循环的 EventHandler;我希望能够在服务的 OnStart() 方法中触发此计时器一次,然后在服务的
我是一名优秀的程序员,十分优秀!