欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 有关vba定时器功能的疑问。

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3216人关注过本帖树形打印复制链接

主题:有关vba定时器功能的疑问。

帅哥哟,离线,有人找我吗?
bage
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/12/10 13:37:45
有关vba定时器功能的疑问。  发帖心情 Post By:2016/1/21 14:06:08 [只看该作者]

vba中有个设置定时器的功能:settimer

我有个疑问是: 如果设置了一个定时器:settimer(2,5000),每5秒执行一个任务。 如果这个任务需要10秒才能结束,这个时候金字塔会出现什么情况呢。

由于vba是单线程的,当一个任务用10秒执行完后,是不是再等5秒执行下一个任务,还是就立即执行下一个任务了。。 金字塔的内部有没有队列维护这些信号? 是否有信号积压的问题??

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/1/21 14:10:50 [只看该作者]

定时器是基于消息队列的处理模式的,如果是前面执行需要10秒,那么10秒后会立即执行第三次触发的,中间的第二次会被忽略掉



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
bage
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/12/10 13:37:45
  发帖心情 Post By:2016/1/21 14:42:53 [只看该作者]

我想问的是:

这种信号的积压,会不会对金字塔进程有影响呢

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/1/21 14:53:11 [只看该作者]

不会影响,定时器在队列中属于优先级较低的那种,如果执行不过来,会丢掉中间一些没有触发的


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
bage
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/12/10 13:37:45
  发帖心情 Post By:2016/1/21 15:27:23 [只看该作者]

下午我实际测试了下,一个vba执行需要3秒,但是settimer的时间设置成1秒。

刚开始一切很正常,但是连续跑了20分钟后发现,vba还能执行,但是鼠标点击金字塔菜单栏上的按钮,点击不了,出现了卡住的情况。整个金字塔程序卡住动不了,发单也发不了。

还请检查下原因呢。

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/1/21 15:41:14 [只看该作者]

VBA是在主线程执行的,你这么搞等于把主线程都给卡死了


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
bage
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:46 积分:0 威望:0 精华:0 注册:2015/12/10 13:37:45
  发帖心情 Post By:2016/1/22 11:08:14 [只看该作者]

按照你之前说的,主线程执行定时器的时候,不是会跳过中间那些等待的信号的么??

怎么会卡死呢。。主线程的处理逻辑还要优化下啊。

而且,定时器本身处理的时间有的时候是不可预测的,这样,定时器的时间间隔就没法设置了。
[此贴子已经被作者于2016/1/22 11:09:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2016/1/22 12:23:12 [只看该作者]

你每秒都去处理需要3秒时间的任务,主线程能不卡死吗?



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部