TC官方合作论坛

标题: 多线程 如何 暂停别的线程? [打印本页]

作者: 小柴    时间: 2012-10-20 14:14
标题: 多线程 如何 暂停别的线程?
一条线程用来 放辅助技能 辅助技能需要吟唱..如何 在辅助技能释放的时候 先暂停另外一条线程的滚键盘按技能?
作者: rpdw411    时间: 2012-10-20 14:19
高手啊,辅助技能分2个线程写,要摸就加个如果判断,要摸就用时间判断
作者: 从来没赢过    时间: 2012-10-20 14:28
临界区
作者: feng123144    时间: 2012-10-20 14:41
临界区或是开另一个线程前暂停现在线程句柄
作者: die13719076310    时间: 2012-10-20 14:47
//要释放辅助技能线程了
暂停技能线程
//辅助技能
//释放辅助技能完毕
恢复技能线程
前提是 技能线程 里不能包含 辅助技能线程 才会奏效否则无效
作者: saga    时间: 2012-10-20 14:56
如果辅助技能短时间有效(比如30秒 ) 那么直接当一般技能处理  如果时效比较长(3分钟 10分钟 )这样的可以在一般技能释放的代码中加个时间判断 来及时释放辅助.没必要另外开辟线程.
作者: saga    时间: 2012-10-20 15:02
给个伪代码:  
    int X=0
      if(条件成立)  //这个条件就是释放一般技能的条件 比如说打怪 PK等等
       循环(true)
           技能1释放....
               **  X=X+x  //x是这个技能的释放时间和冷却时间总和
          技能2释放....
               **
          技能3释放.....
               **
          .............
              **
         技能N释放....
          if(时间>=X)  //这个时间 你可以根据一般技能的释放时间和冷却时间来计算X是否达到了该释放辅助的要求
             辅助释放
     endif
        循环结束
   endif

作者: 小柴    时间: 2012-10-20 23:27
回复 7楼saga的帖子

就是 这个 就可以 即便在循环里 只要时间没到 他不会重复执行了是不/>
作者: saga    时间: 2012-10-21 00:33
对的.. 重点就是时间的计算上 辅助技能嘛 能早上就早上  超过了坚持时间对角色的属性什么的都有影响 所以时间可以稍微短上一些 比冷却时间长  这个尺度你自己看着给 哈.
作者: 418958500    时间: 2012-10-21 04:55
线程1 辅助技能
辅助技能按键

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


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

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

按钮1
关闭 线程1 2 3  

这样 不知道有问题不 没具体试过





欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1