Foxtable(狐表)用户栏目专家坐堂 → [讨论]启用与关闭计时器


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

主题:[讨论]启用与关闭计时器

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/13 22:17:00 [显示全部帖子]

做个例子发上来看看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/13 22:45:00 [显示全部帖子]

Sleep会停掉这个主线程,肯定不行啊。只能是使用第一个按钮的方式

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/13 23:06:00 [显示全部帖子]

窗口计时器一样会被主线程阻塞的。特别是给控件赋值的时候。如果是循环还好办,如果是某种费时操作一样没有用

计时事件
Dim t1 As Date = Vars("Time")
Dim t2 As Date = Date.Now
Dim t As TimeSpan = t2 - t1
Dim str As String
str = t.Minutes & ":" & t.Seconds & ":" & Format(t.Milliseconds,"000")
e.Form.Controls("Button1").text = str


e.Form.Controls("Label1").text = str
Application.Doevents

按钮事件
Vars("Time") = Date.Now
e.Form.TimerEnabled = True

Dim Sum As Decimal
Dim i As Decimal
For i = 1 To 1000000
    Sum = Sum + i
    Application.Doevents
Next

e.Form.TimerEnabled = False

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107873 积分:548728 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/13 23:07:00 [显示全部帖子]

真正实现需要多线程支持,参考:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=73365

 回到顶部