TC官方合作论坛

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

[已解决] 多线程 如何 暂停别的线程?

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-20 14:14:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上加入TC

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

x
一条线程用来 放辅助技能 辅助技能需要吟唱..如何 在辅助技能释放的时候 先暂停另外一条线程的滚键盘按技能?
回复

使用道具 举报

7#
发表于 2012-10-20 15:02:53 | 只看该作者
给个伪代码:  
    int X=0
      if(条件成立)  //这个条件就是释放一般技能的条件 比如说打怪 PK等等
       循环(true)
           技能1释放....
               **  X=X+x  //x是这个技能的释放时间和冷却时间总和
          技能2释放....
               **
          技能3释放.....
               **
          .............
              **
         技能N释放....
          if(时间>=X)  //这个时间 你可以根据一般技能的释放时间和冷却时间来计算X是否达到了该释放辅助的要求
             辅助释放
     endif
        循环结束
   endif
回复 支持 反对

使用道具 举报

10#
发表于 2012-10-21 04:55:51 | 只看该作者
线程1 辅助技能
辅助技能按键

线程2 主技能
循环(1>0)
主技能按键
循环结束


线程3 时间计算
循环(1>0)
线程.暂停 线程2
开启 线程1
延时 吟唱时间
无限等待 线程1
继续 线程2
延时 辅助技能CD
循环结束

按钮0
开启 线程2
开启 线程3

按钮1
关闭 线程1 2 3  

这样 不知道有问题不 没具体试过
回复 支持 反对

使用道具 举报

9#
发表于 2012-10-21 00:33:03 | 只看该作者
对的.. 重点就是时间的计算上 辅助技能嘛 能早上就早上  超过了坚持时间对角色的属性什么的都有影响 所以时间可以稍微短上一些 比冷却时间长  这个尺度你自己看着给 哈.
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2012-10-20 23:27:55 | 只看该作者
回复 7楼saga的帖子

就是 这个 就可以 即便在循环里 只要时间没到 他不会重复执行了是不/>
回复 支持 反对

使用道具 举报

6#
发表于 2012-10-20 14:56:21 | 只看该作者
如果辅助技能短时间有效(比如30秒 ) 那么直接当一般技能处理  如果时效比较长(3分钟 10分钟 )这样的可以在一般技能释放的代码中加个时间判断 来及时释放辅助.没必要另外开辟线程.
回复 支持 反对

使用道具 举报

5#
发表于 2012-10-20 14:47:45 | 只看该作者
//要释放辅助技能线程了
暂停技能线程
//辅助技能
//释放辅助技能完毕
恢复技能线程
前提是 技能线程 里不能包含 辅助技能线程 才会奏效否则无效
回复 支持 反对

使用道具 举报

地板
发表于 2012-10-20 14:41:32 | 只看该作者
临界区或是开另一个线程前暂停现在线程句柄
回复 支持 反对

使用道具 举报

板凳
发表于 2012-10-20 14:28:24 | 只看该作者
临界区
回复 支持 反对

使用道具 举报

沙发
发表于 2012-10-20 14:19:50 | 只看该作者
高手啊,辅助技能分2个线程写,要摸就加个如果判断,要摸就用时间判断
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-10-10 03:55 , Processed in 0.114670 second(s), 25 queries .

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

© 2001-2013 Comsenz Inc.

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