以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]系统定时器代替窗口定时器,报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=171704)

--  作者:wangjh8888
--  发布时间:2021/9/6 16:43:00
--  [求助]系统定时器代替窗口定时器,报错
老师 好
不知道为什么,使用窗口定时器,程序运行正常,把窗口定时器的内容搬迁到系统定时器就报错,帮看看问题所在,谢谢
Timertick:
Functions.Execute("发生多路计时器定时方波")

内部函数"发生多路计时器定时方波":
Dim t As Table = Forms("主窗口").controls("Table-多路计时器").Table
For Each r As Row In t.Rows
    r("定时方波") = not r("定时方波")
Next

全局代码
Public Sub myTimer_Elapsed(sender As object, e As System.Timers.ElapsedEventArgs)
Functions.Execute("发生多路计时器定时方波")
End Sub

定义系统定时器的三个按键:
init+start:
Dim myTimer As new System.Timers.Timer(e.Form.controls("NCBox-刷频").value)\'定时周期2秒
addhandler myTimer.Elapsed, addressof myTimer_Elapsed
myTimer.AutoReset = True
myTimer.Enabled = True
vars("mytimer") = myTimer

start:
vars("mytimer").Enabled = True

stop:
vars("mytimer").Enabled = False

--  作者:有点蓝
--  发布时间:2021/9/6 17:11:00
--  
不是很理解上面的逻辑,请做个例子发上来测试
--  作者:wangjh8888
--  发布时间:2021/9/6 17:24:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:计时器2021 - 上报.zip


--  作者:有点蓝
--  发布时间:2021/9/6 17:29:00
--  
怎么测试?点击init按钮没有问题呀
--  作者:wangjh8888
--  发布时间:2021/9/6 18:02:00
--  
在按启动
--  作者:有点蓝
--  发布时间:2021/9/6 21:41:00
--  
这种系统计时器System.Timers.Timer属于多线程,不能直接操作窗口和表格,和着这里的限制一样:http://www.foxtable.com/mobilehelp/topics/277.htm