TC官方合作论坛
标题:
TC线程中调用了死循环,另外还有定时器,会卡死!怎么解...
[打印本页]
作者:
vvts
时间:
2018-1-20 12:49
标题:
TC线程中调用了死循环,另外还有定时器,会卡死!怎么解...
做的后台脚本,加入了死循环扫描怪物,另外还有定时器半小时一循环的,程序在运行中无法暂停和终止,要等运行完脚本才能终止,是什么原因啊?
程序第一次运行的时候是没问题各项功能都能正常使用,定时启动后一暂停程序就卡死掉了!
功能 定时注册()
字库设置("rc:灵蛇昆仑字库.txt",0)
定时器注册("定时器0",1800000)
结束
//从这里开始执行
功能 执行()
//从这里开始你的代码
调试输出("定时启动现在开启!@")
窗口发送按键(窗口句柄,48)
等待(3000,假)
窗口鼠标右键按下(窗口句柄,718,307)
窗口鼠标右键弹起(窗口句柄,718,607)
坐标=线程开启("灵蛇1","")
循环体=线程开启("循环找怪","犀金")
线程等待(循环体,-1)
回盟=线程开启("回盟技能","")
等待(7000,假)
线程关闭(回盟)
坐标=线程开启("灵蛇2","")
循环体=线程开启("循环找怪","丽金")
线程等待(循环体,-1)
回盟=线程开启("回盟技能","")
等待(7000,假)
线程关闭(回盟)
坐标=线程开启("灵蛇3","")
循环体=线程开启("循环找怪","火灵使")
线程等待(循环体,-1)
等待(3000,假)
坐标=线程开启("灵蛇4","")
循环体4=线程开启("循环找怪4","祭司")
线程等待(循环体4,-1)
回盟=线程开启("回盟技能","")
等待(7000,假)
调试输出("---------灵蛇程序运行完毕!-----------")
窗口发送按键(窗口句柄,48)
等待(3000,假)
窗口鼠标右键按下(窗口句柄,718,307)
窗口鼠标右键按下(窗口句柄,718,307)
等待(1000)
窗口鼠标右键弹起(窗口句柄,718,607)
窗口鼠标右键弹起(窗口句柄,718,607)
坐标=线程开启("昆仑1","")
等待(90000,假)
循环体昆仑=线程开启("循环找怪1","青须")
线程等待(循环体昆仑,-1)
窗口发送按键(窗口句柄,53)//连锁闪电打怪
等待(1000,假)
坐标=线程开启("昆仑2","")
循环体昆仑=线程开启("循环找怪1","残剑")
线程等待(循环体昆仑,-1)
窗口发送按键(窗口句柄,53)//连锁闪电打怪
等待(1000,假)
坐标=线程开启("昆仑3","")
循环体昆仑=线程开启("循环找怪1","裂爪")
线程等待(循环体昆仑,-1)
窗口发送按键(窗口句柄,53)//连锁闪电打怪
等待(3000,假)
坐标=线程开启("昆仑4","")
循环体昆仑=线程开启("循环找怪1","刃皇")
线程等待(循环体昆仑,-1)
回盟=线程开启("回盟技能","")
等待(7000,假)
线程关闭(回盟)
吞器灵1=线程开启("吞器灵","")
线程等待(吞器灵1,-1)
线程关闭(吞器灵1)
调试输出("---------昆仑程序运行完毕!-----------")
坐标=null
遍历ID=null
循环体昆仑=null
吞器灵1=null
循环体4=null
循环体=null
回盟=null
调试输出("坐标="&坐标)
调试输出("遍历ID="&遍历ID)
调试输出("循环体="&循环体)
调试输出("循环体昆仑="&循环体昆仑)
调试输出("循环体4="&循环体4)
调试输出("窗口句柄="&窗口句柄)
结束
//启动_热键操作
功能 启动_热键()
注册ID=线程开启("定时注册","")
线程ID=线程开启("执行","")
结束
//终止热键操作,要想终止程序运行,必须把正在运行的所有全局变量所针对的线程都关闭
功能 终止_热键()
调试输出("程序关闭,定时器销毁!~")
线程关闭(回盟)
线程关闭(吞器灵1)
线程关闭(线程ID)
线程关闭(循环体)
线程关闭(循环体4)
线程关闭(循环体昆仑)
线程关闭(坐标)
线程关闭(遍历ID)
线程关闭(注册ID)
定时器销毁("定时器0")
窗口句柄=null
注册ID=null
回盟=null
吞器灵1=null
线程ID=null
循环体=null
循环体4=null
循环体昆仑=null
坐标=null
退出()
结束
作者:
topses
时间:
2018-1-21 20:30
TC就是牛,让一个啥也不懂的菜鸟可以开个10多个线程
既然来就帮你找点问题:
1, 等待(3000,假),子线程中大可不必用,性能下来10倍。 建议子线程用 等待(3000),速度 要提升10倍以上。
2,10几条线程你管得了吗?你想过线程之间的同步问题吗?建议减少线程,自己先构思线程之间数据关系。注意SLEEP会转换控制权的
作者:
vvts
时间:
2018-1-22 05:00
topses 发表于 2018-1-21 20:30
TC就是牛,让一个啥也不懂的菜鸟可以开个10多个线程
既然来就帮你找点问题:
我也想减少线程啊,关键是让人物跑动的过程中还要扫描怪物,有时候地图跑完都没找到怪,有时候半路上找到了,找到怪之后还要马上关闭坐标,不然,人物接着点地图,接着跑怪都不打了!线程之间的数据关系我也理过!没有冲突!执行过程是和构思一样!就是第一遍运行完成,定时启动线程的时候,中间就不能暂停了!
另外别小看新人啊!我是没你们老司机懂的多,所以我就用笨方法,多开线程,只要程序走的起来不就O了!~
最后谢谢你的回答大神!~
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1