提一个超菜鸟的问题:如何自动停止timer事件?

ironblood 2005-02-01 09:08:19
我使用timer(interval)函数来启动计时事件,但我只想执行一次事件即自动停止,如何实现?
...全文
196 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
li_d_s 2005-02-01
  • 打赏
  • 举报
回复
首先,timer不会占用多少资源。
你可以试试看,在timer里面执行一次以后,用this.postevent("stoptimer")来异步触发窗口的自定义事件,然后在自定义事件里面去Timer(0),如果这样可以的话,就不用去做那个instance变量了
ironblood 2005-02-01
  • 打赏
  • 举报
回复
to:li_d_s(我是小鬼)
哈哈,有你的,可是问题是,timer事件实际上还在不断执行啊,只是不执行里面代码而已,这样不断循环的执行timer,不会浪费系统资源吗?所以,我觉得也不是最佳解决方法啊。难道pb的timer功能就这么弱???
ribut9225 2005-02-01
  • 打赏
  • 举报
回复
呵呵,不会的
你可以设置一个条件,当条件满足时,用timer(0)
ironblood 2005-02-01
  • 打赏
  • 举报
回复
to:jxf168(焦先生)
也不行啊,如果我在调用timer的事件里连续调用两次timer():
timer(1)
timer(0)

结果一次都不执行了,我想可能是代码执行时序的问题,所以这种方法也不灵~~
li_d_s 2005-02-01
  • 打赏
  • 举报
回复
你做一个布尔型的instance变量,一开始等于false,timer事件里面的代码加上if not lb_mark then这个条件,然后执行完毕timer事件以后把lb_mark = true,以后不管怎么到timer,代码都不会执行了嘛
li_d_s 2005-02-01
  • 打赏
  • 举报
回复
或者你做一个布尔型instance变量,作个标记,执行一次Timer后就把这个标记置为true,然后在timer执行代码的时候判断一下这个bool不就搞定了嘛
jxf168 2005-02-01
  • 打赏
  • 举报
回复
应该是在调用的事件最后加一句Timer(0) (例如open ....)
Timer(0)
ironblood 2005-02-01
  • 打赏
  • 举报
回复
to: li_d_s(我是小鬼)
我早试过了,不行啊。看了帮助,里面说不建议Timer事件里面引用timer()函数的,难道就不能自动停止,而只能手动停止?
li_d_s 2005-02-01
  • 打赏
  • 举报
回复
在Timer事件最后加一句Timer(0)啊

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧