TC官方合作论坛
标题:
求教下~~~,写了一个程序,里面开了3个线程,这样的写法对不对,然后程序运行时间一长就会有的时候不好用了
[打印本页]
作者:
zywbest000
时间:
2013-8-22 21:46
标题:
求教下~~~,写了一个程序,里面开了3个线程,这样的写法对不对,然后程序运行时间一长就会有的时候不好用了
求教下~~~,写了一个程序,里面开了3个线程,这样的写法对不对,然后程序运行时间一长就会有的时候不好用了~3个线程,我是这样的开始,暂停,关闭,结束。
功能 开始_点击()
线程句柄=线程.开启("尝试登陆.来吧","")
检测程序1=线程.开启("尝试登陆.检测1","")
检测程序2=线程.开启("尝试登陆.检测2","")
功能结束
功能 热键0_热键()
线程句柄=线程.开启("尝试登陆.来吧","")
检测程序1=线程.开启("尝试登陆.检测1","")
检测程序2=线程.开启("尝试登陆.检测2","")
功能结束
功能 热键2_热键()
线程.恢复(线程句柄)
线程.恢复(检测程序1)
线程.恢复(检测程序2)
功能结束
功能 热键1_热键()
线程.暂停(线程句柄)
线程.暂停(检测程序1)
线程.暂停(检测程序2)
功能结束
功能 热键3_热键()
线程.关闭(线程句柄)
线程.关闭(检测程序1)
线程.关闭(检测程序2)
功能结束
这样写有没有什么问题,因为有的时候我按设定的热键,线程没有暂停,或者关闭。 这个是第一个问题,
然后第二个问题,3个线程,第一个线程是游戏里面各种操作的程序,第二和第三个线程运行的是检测程序,就会检测游戏有没有掉线,一旦发现掉线就关闭第一个线程,然后按键呼出任务管理器,关闭掉游戏,之后再重新开启第一个线程,比如:
功能 检测1()
循环(真)
辅助.等待(200)
变量 dm_ret1,intX,intY
系统.设置路径(辅助.获取资源路径("C:\\Documents and Settings\\Administrator\\桌面\\自己建的脚本资源\\尝试登陆\\尝试登陆\\资源"))
dm_ret1=dm.FindPic(495,338,542,372,"卡战船.bmp","000000",0.9,0,intX,intY)
如果(dm_ret1>=0)
线程.关闭(线程句柄)
辅助.等待(1000)
键盘.弹起(54)
辅助.等待(1000)
键盘.弹起(96)
辅助.等待(1000)
////开出任务管理器
辅助.等待(3000)
键盘.按下(17)
辅助.等待(1000)
键盘.按下(16)
辅助.等待(1000)
键盘.按下(27)
辅助.等待(700)
键盘.弹起(17)
辅助.等待(700)
键盘.弹起(16)
辅助.等待(700)
键盘.弹起(27)
辅助.等待(1000)
////强制结束1次
键盘.按键(72,1)
辅助.等待(1000)
辅助.等待(1000)
键盘.按键(46,1)
辅助.等待(500)
辅助.等待(1000)
键盘.按键(13,1)
////强制结束2次
辅助.等待(1000)
键盘.按键(72,1)
辅助.等待(1000)
键盘.按键(46,1)
辅助.等待(500)
辅助.等待(1000)
键盘.按键(13,1)
辅助.等待(1000)
键盘.按键(27,1)
辅助.等待(3000)
线程.开启("尝试登陆.来吧","")
如果结束
这样运行程序一段时间,几个小时不一定,会出现程序不好用,比如说上面的程序是线程2的,线程2的程序检测到掉线,会没有响应,或者关掉了线程1,但是没有呼出任务管理器,就开始又开启线程1,又重新开了个游戏。 这个怎么弄呢~~~ 而且程序最开始运行的时候是好用的啊~~~求教下 ~~~ 谢谢 ~~·
作者:
187144831
时间:
2013-8-22 22:24
前面的关于线程的代码看了一下
具体的操作 没看
看到个关键字 检测掉线
貌似你逻辑没搞清楚
你应该把线程暂停或者关闭分开 不要一刀切
比如说 你第二个线程 是检测掉线 第三个线程检测验证
如果 第二个线程证明掉线了 那就在第二个线程里面关闭 1主线程 3线程检测验证
2线程继续运行重新登录 登录成功后 调用线程 1和3 在开启
一切又回到最初你刚运行的状态
还有不必要打开任务管理器 结束进程 有函数可以直接干掉进程 比那个简单的多
记得大漠也有函数 直接干掉
作者:
sugar987009
时间:
2013-8-23 06:08
- -!最好的办法就是用计时器 周期调用辅助EXE文件 将此进程关闭 达到初始化的目的 释放所有资源 然后再打开
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1