TC官方合作论坛

 找回密码
 立即注册
查看: 1355|回复: 7
打印 上一主题 下一主题

[问题] 请教个线程的暂停恢复问题

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 15:09:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
代码:
线程实现的功能:循环扫描矿点为死循环

是否暂停=线程.暂停(线程句柄)
列表框.增加文本("列表框0","线程暂停成功")
while(!是否暂停)

列表框.增加文本("列表框0","循环中的暂停")
是否暂停=线程.暂停(线程句柄)
endwhile


是否恢复=线程.恢复(线程句柄)
列表框.增加文本("列表框0","线程恢复成功")
while(!是否恢复)

列表框.增加文本("列表框0","循环中的恢复")
是否恢复=线程.恢复(线程句柄)

endwhile


运行结果:
输出,线程暂停成功
输出,线程恢复成功

在暂停和恢复过程中,我还测试过线程句柄是否不一样了,但返回的两个句柄值是一样

但实际上该线程并没有恢复工作.请教问题会出在哪里?
主要想实现:人物死亡暂停现有的循进程,人物3分钟复活后恢复现有的循环进程


思路:
1.线程实现扫描矿点+采集
2.中途被人故意杀死后暂停扫描,
3.三分钟后自动复活到墓地---调用自动寻路函数回到之前的坐标点
4.复活回到坐标点后,恢复线程,接着扫描并采集

但现在是回到原点恢复线程后,并没有接着持行相关的线程功能



回复

使用道具 举报

沙发
发表于 2012-9-15 15:54:30 | 只看该作者
你具体想实现什么功能呢
回复 支持 反对

使用道具 举报

板凳
发表于 2012-9-15 15:55:47 | 只看该作者
endhile错了把
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2012-9-15 16:01:08 | 只看该作者
代码可能是写在论坛上有手误,但意思是那样.

就是说人物死亡后暂停线程,当复活后恢复线程.

但实际是,暂停线程和恢复线程都是成功的.但实际上恢复后的线程并没有正常工作.

但我另一种实现方法确是可行,把暂停线程换成停止,恢复换成开启.但这样会造成游戏窗口的多次绑定操作难免费出现意外.

如果能正常实现暂停和恢复就更加理想.
回复 支持 反对

使用道具 举报

5#
发表于 2012-9-15 16:13:21 | 只看该作者
为什么死亡之后一定要暂停?不能跳出到第一个循环中进行循环吗?复活点的坐标都是一样的,查到这个坐标后进行判断该加血加血该加蓝加蓝.该跑到死亡点就跑到死亡点.
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2012-9-15 16:33:26 | 只看该作者
1.为什么要暂停:情况是这样,线程是实现一个扫描和采矿的功能.被人故意杀死后会复活到别的地方(墓地).这时要暂停扫描否则他在路上乱跑见矿就走过去.就不能实现定点采了..从死亡后自动复活,还有一个自动回到死亡点的函数要调用,也是为了不起冲突,先停掉扫描矿点,等自动复活跑回到原点再恢复扫描功能.

2.这里选择暂停线程是因为:在扫描和采矿的线程中有个大漠绑定语句.[dm.bindwindow(hwnd,"dx","dx","dx",0)]之前也有论坛里的朋友给提过意见,在线程功能里用 mainflag=true这种进行控制,死亡后跳出线程.并且调用大漠解绑该绑定,
造成结果:这种情况和我直接停止线程运行结果是一样.由于多次的绑定造成一个游戏窗口假死的情况.就是鼠标和键盘,连脚本的动作都不能实现了.这时的游戏窗口也只能通过任务管理器来关闭,再重新开启游戏绑定.

3.采用暂停和恢复线程,这种不断绑定窗口的现像就可以不发生了
现在最大的问题是:线程能正常暂停,也能正常恢复,从返回值来判断的结果.但实际上是这边返回值说成功,但实际上线程并没有接着去持行以前的操作.也就是实际上恢复线程是失败的.
回复 支持 反对

使用道具 举报

7#
发表于 2012-9-15 17:57:35 | 只看该作者
到采矿坐标点后才开始进行循环采矿啊.反正我用暂停后再恢复就常出问题.特别是暂停时间比较长的时候.
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2012-9-15 20:13:13 | 只看该作者
看来我就是因为长时间暂停没有恢复导致的问题,不知道官方是在多少时间内不恢复就会失效
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-11 18:54 , Processed in 0.146551 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表