计时器 - 页 4

 

要有一个小于一秒的OnTimer事件范围。

并且能够以毫秒为单位测量一些过程。

我完全不明白"...(int delay=0) "的意思,所以我把它写成了废话。

 
Yedelkin:
正如你所理解的那样,在这种情况下,我的座右铭是:"如果你可以不用他们,就打倒所有的吝啬鬼"。你唯一需要做的是允许在用户选择的时间内延迟生成终端层面的第一个定时器事件。我不是在贬低你的代码的重要性,尤其是我根本没有看到它。

你如何想象从计时器中组织第一个事件的延迟?

同样的第二个定时器将在终端启动,定时器事件将在某一时刻为专家顾问产生。一切都与我已经建议的完全一样。

 
stringo:

您设想如何组织从定时器开始的第一次延迟事件?

同样的第二个定时器将在终端中启动,在某一时刻,定时器事件将开始为专家顾问产生。一切都与我已经建议的完全一样。

这就是我的想象。 在OnInit()中找到EventSetTimer(14400, 7029) 函数后,终端将按照用户的意愿,在程序开始后的7029秒(比如12-00),激活内部定时器并产生第一个Timer事件。进一步的定时器事件将以每四小时一次的间隔产生。每4小时一个事件,而不是14400个事件,其中13399个定时器事件对用户没有意义。

在我看来,这种方法与你建议的方法有着本质的区别。因为在我的变体中,内部的第二个计时器(计数为7029秒)将只在专家顾问初始化后的有限时间内工作,并在不堵塞事件队列的情况下停止其工作。你的变体提供了连续的每秒事件的生成,从专家工作的第一分钟到最后一分钟,其中只有第14400个事件对用户来说至少有一些重量。
 
pusheax:

要有一个小于一秒的OnTimer事件范围。

并且能够以毫秒为单位测量一些过程。

实际上,目前的参数"int seconds// number of seconds "定义了定时器事件的周期性,而不是一些 " OnTimer的延迟"。学习数学。关于毫秒,至少要先读一读这个主题的第一页。

pusheax:

我完全不明白"......(int delay=0) "的意思,这就是为什么我写道,它是垃圾。


我明白了。这有点像 "在你知道之前说 "的意思。这没关系,它发生了 :)我们有时都想与他人分享我们对美的看法。

 
Yedelkin:

我是这样看的:在OnInit()中找到EventSetTimer(14400, 7029) 函数后,终端将激活内部的第二个定时器,并在程序开始后整整7029秒(比如,在12-00)产生第一个Timer事件 如用户所愿。进一步的定时器事件将以每四小时一次的间隔产生。每4小时一个事件,而不是14400个事件,其中13399个定时器事件对用户没有意义。

我认为,这种方法与你建议的方法有根本的不同。因为在我的变体中,内部的第二个计时器(计数为7029秒)将只在EA初始化后的有限时间内工作,并将停止工作,不会堵塞事件队列。你的变体提供了连续的每秒事件的生成,从专家工作的第一分钟到最后一分钟,其中只有第14400个事件对用户来说至少有一些重量。

好的

在函数OnInit 中启动定时器 EventSetTimer(7029)

OnTimer 函数中,在第一次到达时禁用之前的EventKillTimer() 定时器并启动一个新的定时器EventSetTimer(1440)

 
stringo:

在第一次到达的 OnTimer 函数中,禁用之前的EventKillTimer() 定时器,并启动一个新的定时器EventSetTimer(1440)

它能正常工作吗?不久前有人说,EventSetTimer 函数本质上是为init的一次性调用服务的。
 
stringo:

好的

OnInit 函数中启动定时器 EventSetTimer(7029)

在第一次来的 OnTimer 函数中,禁用以前的定时器EventKillTimer() 并启动新的定时器EventSetTimer(1440)

哦,隧道尽头的光亮!在OnTimer()本身中调用EventSetTimer()?等我到了终点站,我一定要试试。谢谢你的聪明解决方案!
 
TheXpert:
它能正常工作吗?不久前有人说,EventSetTimer 函数本质上是为了从init中调用一次。
我做到了。这是一个常见的应用。这一点也没有使外星生物失效(如果你觉得喜欢的话)。
 
stringo:

好的

OnInit 函数中启动定时器 EventSetTimer(7029)

在第一次来的 OnTimer 函数中,禁用以前的定时器EventKillTimer() 并启动新的定时器EventSetTimer(1440)

这是我自古以来 的做法。 然而,在测试器中,这种方法有一段时间没有发挥作用。在测试器中切换到了计数器。

但这都是抒情的。 毫秒是非常理想的。我也加入了这个愿望。

我需要100毫秒的时间采样,但我现在有这种冲动,不知道明天会需要什么。我不希望有这么高的比特率阈值,1000毫秒太厚了。 毫秒是标准。如果有人愚蠢地溢出了队列--那是他的悲剧(总有许多非常实惠的方法让程序在终端崩溃)。 我们会在某个时候弄清楚我们能做什么和不能做什么 :)

 

现在已经不可能到毫秒了。

有多少已经写好的EA 会开始产生比作者预期多1000倍的定时器事件?