按键精灵多线程很吃CPU,而且总崩溃。怎么解决?
展开全部
吃CPU是必须的,同一时间多做一倍到几倍的事情,CPU不可能不涨。
至于老是崩溃,要看你脚本的具体情况。楼下有点把多线程妖魔化了。。。。其实多线程在必要的时候还是不可或缺的。
只是按键精灵的多线程现在还有很多需要避免的情况。比如我们用多线程同时后台操作两个窗口,那么要避免多个线程出现同一时间绑定后台的情况,使用大漠绑定后台,如果两条线程同一时间进行,经本人尝试100%崩溃。
最好由主线程调控全局变量来控制其他线程的启动暂停关闭。不同线程启动前的延时必须有,最好的是添加启动条件,比如线程1绑定后台成功,赋值全局变量=1,if 全局变量=1,启动线程2,线程2绑定后台成功,全局变量=2,if 全局变量=2,启动线程3。
至于老是崩溃,要看你脚本的具体情况。楼下有点把多线程妖魔化了。。。。其实多线程在必要的时候还是不可或缺的。
只是按键精灵的多线程现在还有很多需要避免的情况。比如我们用多线程同时后台操作两个窗口,那么要避免多个线程出现同一时间绑定后台的情况,使用大漠绑定后台,如果两条线程同一时间进行,经本人尝试100%崩溃。
最好由主线程调控全局变量来控制其他线程的启动暂停关闭。不同线程启动前的延时必须有,最好的是添加启动条件,比如线程1绑定后台成功,赋值全局变量=1,if 全局变量=1,启动线程2,线程2绑定后台成功,全局变量=2,if 全局变量=2,启动线程3。
追问
其实我要用到的功能很简单。
比如每隔100毫秒按一次1键,同时每隔100毫秒按一次2键。在这个时候我又能用脚本去做别的事情,不是要用来做后台。
展开全部
新手最好别用多线程,多线程用的不好会很卡甚至脚本崩溃!比如你的2个线程都是死循环就会占很大的资源!不如在主程序里弄个死循环跳出
把启动线程去掉.采用循环调用子程序
do
call 买药启动房间
Delay 200
call 具体打怪操作
Delay 200
loop
另外在多线程中每个线程都 要求绑定窗口,如果是前台就不必了,那是在摧毁鼠标
全局变量就是环境变量!不过普通变量也分全局
意思就是 普通变量=A,就只能在主线程、或者设置的单线程使用,换个子线程就不认识他
而环境变量设置在主线程,任何一个线程都可以用,都可以调用!
比如在主线程设置坐标1为环境变量!那么,在多线程里面就不需要再获取坐标1,直接调用就OK!简约很大的资源
不过多线程环境变量对整个脚本有干扰性,不稳定性。
如果不是必不得已,做好不要多线程,没办法要用到多线程最好只设置1-2个!且延时设置要高些!
多线程相当耗费电脑CPU的!其实按我的理解多线程做不到绝对的同步,用简单明了的单线程更能体现效果
望采纳。
把启动线程去掉.采用循环调用子程序
do
call 买药启动房间
Delay 200
call 具体打怪操作
Delay 200
loop
另外在多线程中每个线程都 要求绑定窗口,如果是前台就不必了,那是在摧毁鼠标
全局变量就是环境变量!不过普通变量也分全局
意思就是 普通变量=A,就只能在主线程、或者设置的单线程使用,换个子线程就不认识他
而环境变量设置在主线程,任何一个线程都可以用,都可以调用!
比如在主线程设置坐标1为环境变量!那么,在多线程里面就不需要再获取坐标1,直接调用就OK!简约很大的资源
不过多线程环境变量对整个脚本有干扰性,不稳定性。
如果不是必不得已,做好不要多线程,没办法要用到多线程最好只设置1-2个!且延时设置要高些!
多线程相当耗费电脑CPU的!其实按我的理解多线程做不到绝对的同步,用简单明了的单线程更能体现效果
望采纳。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
您好,无论是多线程也好还是单线程,每一个动作都要在适当的位置延时一下,否则CPU使用会很高,也不利于脚本运行的流畅,在一系列的操作或者循环里都加上适当的延时是给脚本喘气的时间,哪怕是100毫秒都起到很重要的作用!至于在哪里延时,比如鼠标移动到某点后,可以延时10毫秒再点击等等! 很高兴为您解答,希望能采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加延迟,稳定,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询