TC官方合作论坛
标题:
请高手解答一下:关于线程.暂停和线程.开启的问题,谢谢!
[打印本页]
作者:
wangxc99
时间:
2013-9-24 15:28
标题:
请高手解答一下:关于线程.暂停和线程.开启的问题,谢谢!
各高手大神们,请帮下小弟: 在编个脚本时,里面用到了一个死循环,类似如下代码
倒.其实简化代码如下
线程句柄1=线程.开启XXX1
辅助.等待(20000)
线程.暂停(线程句柄1)
线程句柄2=线程.开启XXX2
循环(真)
线程.暂停(线程句柄2)
线程.恢复(线程句柄1)
辅助.等待(20000)
线程.暂停(线程句柄1)
线程.恢复(线程句柄2)
辅助.等待(20000)
循环结束
大约意思就是这样了
功能 切换()
辅助.等待(1000)
线程句柄11=线程.开启("召唤脚本.小号主线任务","")
调试输出(线程句柄11)
辅助.等待(30000)
//线程.等待(线程句柄11,-1)
//辅助.等待(1000)
如果(dm.FindPic(0,0,2000,2000,"切换.bmp","000000",0.6,0,wx,wy)>=0)
线程.暂停(线程句柄11)
辅助.等待(1000)
辅助.等待(500)
超级鼠标.移动(wx+10,wy+10)
辅助.等待(500)
超级鼠标.左键单击(1)
辅助.等待(500)
超级鼠标.移动(wx,wy-260)
辅助.等待(3500)
如果结束
辅助.等待(1500)
线程句柄22=线程.开启("召唤脚本.小号主线任务1","")
调试输出(线程句柄22)
辅助.等待(30000)
循环(真)
超级键盘.弹起(17)
辅助.等待(30000)
如果(dm.FindPic(0,0,2000,2000,"切换.bmp","000000",0.6,0,wx1,wy1)>=0)
辅助.等待(1000)
线程.暂停(线程句柄22)
调试输出("暂停22")
辅助.等待(1500)
超级鼠标.移动(wx1+10,wy1+10)
辅助.等待(500)
超级鼠标.左键单击(1)
辅助.等待(500)
超级鼠标.移动(wx1,wy1-260)
辅助.等待(3500)
如果结束
辅助.等待(3000)
线程.设置事件(句柄)
标记11:
是否成功11=线程.恢复(线程句柄11)
如果(是否成功11)
否则
调试输出("跳标记11")
goto 标记11
如果结束
辅助.等待(30000)
如果(dm.FindPic(0,0,2000,2000,"切换.bmp","000000",0.6,0,wx2,wy2)>=0)
线程.暂停(线程句柄11)
调试输出("暂停11")
进程.释放内存(线程句柄11)
辅助.等待(1500)
辅助.等待(1500)
超级鼠标.移动(wx2+10,wy2+10)
辅助.等待(500)
超级鼠标.左键单击(1)
辅助.等待(500)
超级鼠标.移动(wx2,wy2-260)
辅助.等待(3500)
否则
调试输出("标记Y")
如果结束
辅助.等待(1500)
标记22:
是否成功22=线程.恢复(线程句柄22)
如果(是否成功22)
否则
调试输出("跳标记22")
goto 标记22
如果结束
调试输出("恢复22")
辅助.等待(30000)
调试输出("循环尾")
循环结束
功能结束
但是发觉脚本运行一段时间后(时间不确),恢复线程恢复不了,在拼命的goto,如下
输出>>"跳标记11" 行号:106 文件:c:\users\wangxc\desktop\tc_99征途2召唤脚本\tc_99征途2召唤脚本\tc_99征途2召唤脚本.t
请高手指点下,是那里的问题,谢谢!!
作者:
dongyijun1979
时间:
2013-9-24 16:19
看了半天愣是木看懂,
跟汇编代码一样.短短几行代码N多的跳转
你先把要实现的目标细化成一个个独立的功能函数,那时候估计你自己就发现自己的问题了.
作者:
fire
时间:
2013-9-24 16:40
标记11:
是否成功11=线程.恢复(线程句柄11)
如果(是否成功11)
否则
调试输出("跳标记11")
goto 标记11
如果结束
再看一遍.....
建议这样找问题:
调试输出("跳标记11"&是否成功11)
作者:
Abin
时间:
2013-9-24 16:52
恢复不成功有可能是你线程根本就没暂停,所以就恢复不了。。 那就会一直处在下面的goto循环里,那么就会出现你的问题了。你再看看你的代码吧!
作者:
wangxc99
时间:
2013-9-24 17:32
倒.其实简化代码如下
线程句柄1=线程.开启XXX1
辅助.等待(20000)
线程.暂停(线程句柄1)
线程句柄2=线程.开启XXX2
循环(真)
线程.暂停(线程句柄2)
线程.恢复(线程句柄1)
辅助.等待(20000)
线程.暂停(线程句柄1)
线程.恢复(线程句柄2)
辅助.等待(20000)
循环结束
作者:
wangxc99
时间:
2013-9-24 17:37
回复
4楼
Abin
的帖子
线程是暂停了,同时这个goto有时是线程句柄1恢复不了,有时是结程句柄2恢复不了.很奇怪.
同时我还想问个问题,如果一个线程暂停了两次,是不是不能恢复了?还是要恢复两次才能运行?
作者:
q273814
时间:
2013-9-25 00:56
跳转语句最好还是少用的好 太多了 会很乱的 像if while for 之类的很好用的也 而且容易看明白
作者:
Abin
时间:
2013-9-25 10:39
暂停了几次就要恢复几次!至于其他的,我看你的逻辑比较乱。你自己再处理下吧!
作者:
guozexue
时间:
2013-10-30 17:06
你是不是想实现前台多开啊?
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1