• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.1
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.5
软件大小:29.2M
更新时间:06-14

最新企业版UiBot
立即下载

软件版本:3.3
软件大小:282M
更新时间:08-06

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
发新话题 回复该主题

[已解决] 麻烦前辈看下问题 [复制链接]

1#

Thread.Start (运行软件())
Thread.Start (计时器())
Dim t1,t2,h,m,s,begin_t
t1 = Time()
begin_t = 0

Function 运行软件()
    RunApp "com.tencent.tmgp.wzry"
TracePrint "运行中"
End Function
Function 计时器()
    Do
t2 = Time() - t1 + begin_t
h = Int(t2 / 3600)
m = Int((t2 mod 3600) / 60)
If m < 10 Then m = "0" & m
s = t2 mod 60
If s < 10 Then s = "0" & s
ShowMessage h & ":" & m & ":" & s
TracePrint "计时成功"
Delay 1000
Loop
End Function
然后报错了....
难受为什么总是上传图片失败呢

本主题由 超级版主 n15976906190 于 2019/7/11 15:33:00 执行 审核帖子 操作
2#

回复 1楼沐星雨的帖子
  1. Thread.Start (运行软件)'括号去除
  2. Thread.Start (计时器)
  3. Do
  4. Delay 1000
  5. Loop
  6. Dim t1,t2,h,m,s,begin_t
  7. t1 = Time()
  8. begin_t = 0
  9. Sub 运行软件()
  10. RunApp "com.tencent.tmgp.wzry"
  11. TracePrint "运行中"
  12. End Sub
  13. Sub 计时器()
  14. Do
  15. t2 = Time() - t1 + begin_t
  16. h = Int(t2 / 3600)
  17. m = Int((t2 mod 3600) / 60)
  18. If m < 10 Then m = "0" & m
  19. s = t2 mod 60
  20. If s < 10 Then s = "0" & s
  21. TracePrint h & ":" & m & ":" & s
  22. TracePrint "计时成功"
  23. Delay 1000
  24. Loop
  25. End Sub
复制代码

收徒索引 ←点击

个 人 Q Q : 1 2 2 3 1 1 6 6 1 8
3#

回复 2楼n15976906190的帖子

为什么单独运行 子程序计时器 会显示1,2,3......
把它们合成多线程就是从1970年到现在的时间
然后我的修改是这样的,有什么更好的解决方法吗
这样修改有个两个问题,需要自己延迟很长一段时间,二是在调试过程中TracePrint h & ":" & m & ":" & s 同时显示两次,为什么会显示两次?
Thread.Start(运行软件)
Thread.Start (计时器)
Dim t1,t2,h,m,s,begin_t,intx,inty
t1 = Time()
begin_t = 0
Do
    Thread.Start (计时器)
    Delay 518400000//一年
     TracePrint "运行时间"
Loop
Function 运行软件()
    RunApp "com.tencent.tmgp.wzry"
TracePrint "运行"
End Function

Function 计时器()
    
t1 = Time()
begin_t = 0
    Do
t2 = Time() - t1 + begin_t
h = Int(t2 / 3600)
m = Int((t2 mod 3600) / 60)
If m < 10 Then m = "0" & m
s = t2 mod 60
If s < 10 Then s = "0" & s
ShowMessage h & ":" & m & ":" & s
TracePrint h & ":" & m & ":" & s
Delay 1000
Loop
End Function

4#

回复 3楼沐星雨的帖子

1.
多线程内外值不共通 所以 计时器内获取不到T1等变量值
2.
安卓必须有主线程 主线程停止多线程也会停止 所以 需要死循环延迟1秒
3.
因为Thread.Start (计时器)了两次 所以显示两次

收徒索引 ←点击

个 人 Q Q : 1 2 2 3 1 1 6 6 1 8
5#

回复 4楼n15976906190的帖子

能否写下设置共享变量的写法,我在线程后面写了t1为共享变量,在子程序循环前写了获取变量,但还是一大堆时间

6#

回复 5楼沐星雨的帖子
  1. Dim t1,t2,h,m,s,begin_t
  2. Thread.SetShareVar "t1", Time()
  3. Thread.SetShareVar "begin_t", 0
  4. Thread.Start (计时器)
  5. Do
  6. Delay 1000
  7. Loop
  8. Sub 计时器()
  9. t1=Thread.GetShareVar("t1")
  10. begin_t=Thread.GetShareVar("begin_t")
  11. Do
  12. t2 = Time() - t1 + begin_t
  13. h = Int(t2 / 3600)
  14. m = Int((t2 mod 3600) / 60)
  15. If m < 10 Then m = "0" & m
  16. s = t2 mod 60
  17. If s < 10 Then s = "0" & s
  18. TracePrint h & ":" & m & ":" & s
  19. TracePrint "计时成功"
  20. Delay 1000
  21. Loop
  22. End Sub
复制代码

    已有1评分我要评分查看所有评分

    收徒索引 ←点击

    个 人 Q Q : 1 2 2 3 1 1 6 6 1 8
    发新话题 回复该主题