TC官方合作论坛

标题: 新手求助 ,线程等待的问题 [打印本页]

作者: loveternity    时间: 2012-7-18 12:13
标题: 新手求助 ,线程等待的问题
TC帮助文档中的 等待函数原形及功能
         int waitforthread(int handle,int sec)
         函数功能: 检测线程调用程序事件的信号状态,当函数的执行时间超过指定的时间时就返回执行信号状态的整形
提问1:这里的信号状态是指线程的返回值吗?
        是不是可以这样理解:当等待时间中,线程执行完毕并返回值,则等待函数就返回0
                                         否则,当线程在指定的时间内未执行完,无返回值,则等待函数就返回-1
提问2:关于等待函数第二个参数单位为秒是否精准?
下面是文档提供的事例:
  1. 功能 整型 线程方法()
  2. 辅助.消息框("这是线程的执行方法")
  3. 返回 0
  4. 功能结束

  5. 功能 整型 开始执行()
  6. 整型 线程句柄,等待
  7. 线程句柄=线程.开启("我的程序.线程方法","")

  8. 辅助.等待(2000)
  9. 等待=线程.等待(线程句柄,10)
  10. 如果(等待==0)
  11. 辅助.消息框("等待成功")
  12. 如果结束
  13. 如果(等待==-1)
  14. 辅助.消息框("等待失败")
  15. 如果结束
  16. 返回 0
  17. 功能结束

复制代码
上面指定等待10秒,执行后,当线程弹出消息框("这是线程的执行方法")后,如果我迅速点确认,则立马弹出"等待成功",当我不点确认,可以很明显发现不超过10秒,它就弹出了等待失败,这是怎么回事,貌似那10秒一点不精准??求高人指点明津



作者: 陌上青衣。    时间: 2012-7-18 12:28
应该是毫秒的,TC命令都是毫秒的

你把那个辅助.等待(2000)去掉,

在把后面参数当成毫秒来试试
作者: loveternity    时间: 2012-7-18 12:33
谢谢陌上,单位确实是毫秒,帮助文档写错了
作者: c724211922    时间: 2012-7-18 12:39
学习




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1