上周,我问了一个关于这个问题的问题,here,我按要求发布了我的代码,但没有回答。总之,我有一些更具体的问题。
当重置计时器时,过程参数的目的是什么?用Schedule:=False回电话是没有道理的。例如,如果回调函数不再在作用域内,会发生什么?计时器还能正确复位吗?这就是为什么我看到的大多数例子(包括Chip -不幸的是,由于某些原因,我不允许包含链接)使用On Error Resume Next进行On Error Resume Next调用,很抱歉再次问了一遍,但为什么要这样做呢?
我的理解是,计时器是由EarliestTime参数注册的,这是唯一标识它的定时器的“序列号”。
程序参数是否也包括在登记和随后的识别过程中?
如果回调过程包含在计时器触发时不再存在的对象中,会发生什么?或者更普遍地说,当计时器触发并尝试执行回调过程时,会发生什么错误?
如果包含了LatestTime参数,那么如果计时器无法触发,那么在此之后会发生什么?Windows会完全删除定时器吗?
发布于 2013-11-21 09:12:00
我的理解是,计时器是由EarliestTime参数注册的,这是唯一标识它的计时器的“序列号”。
不知道你在哪里读到的?这并不是一件明智的事情,但原则上您可以安排两个或多个OnTime使用相同的EarliestTime运行。所以这并不意味着它是独一无二的。EarliestTime与Procedure的结合使其独树一帜。
重置计时器时,过程参数的目的是什么?
不清楚您所说的“重置”计时器是什么意思;您的意思是用Schedule := True或Schedule := False调用Schedule := True或Schedule := False?
无论哪种方式,如果您不指定Procedure参数,那么如何知道要运行哪个过程(或哪个过程要取消)?这就是它的目的。
我建议你试试然后说服自己。
,如果回调过程包含在计时器触发时不再存在的对象中,会发生什么?或者更广泛地说,当计时器触发并尝试执行回调过程时,会发生什么错误呢?
好吧,你试过自己找出来吗?没有什么神秘的事情发生。您将像往常一样收到一条错误消息。
如果包含了LatestTime参数,那么如果计时器无法触发,那么在此之后会发生什么?Windows是否完全擦除计时器?
我想你可以这么说。这个程序不会运行。请参阅VBA帮助:
例如,如果LatestTime设置为EarliestTime + 30,而Microsoft由于另一个过程正在运行而没有在EarliestTime处于就绪、复制、剪切或查找模式,则Microsoft将等待30秒才能完成第一个过程。如果Microsoft在30秒内未处于就绪模式,则不会运行该过程。
https://stackoverflow.com/questions/20101352
复制相似问题