TC官方合作论坛

 找回密码
 立即注册
查看: 1477|回复: 8

[已解决] 继续问关于线程的(解决必采纳!希望前辈们不吝赐教!)

[复制链接]
发表于 2012-5-16 05:51:23 | 显示全部楼层 |阅读模式

马上加入TC

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

x
先问个概念   
2个并行的线程在执行
比如线程1 检测防卡  线程2 执行任务         线程1如果涉及到鼠标键盘的操作 要优先执行它
这种情况下是不是对优先级高的那个设置临界区 操作完再释放就可以了,
那如果是这样呢  需要进行线程1鼠标操作的时候 把线程2暂停 操作完了再恢复可以吗?



下面是我要解决的问题
如果我在线程2  具体的执行过程中  碰到某种情况       需要重新执行此处的任务
我应该怎么写?
    比如线程1 检测里   发现角色死了     我回城。           然后这个时候 如何重置线程2 正在执行任务的功能呢? 必须要在当前功能从头开始执行 。。 我改如何去跳转到线程2里目前执行的功能呢
    线程1 检测  是全程监控执行的一个方法

线程2的方法 包括了很多功能集合  
             任务1()
             任务2()
              ...............
这样的   
凡是满足 检测1的某情况下   就必须强制  让线程2的执行到具体的某个任务的最开始   比如这时任务1()执行完了    任务2()执行过程中死了   需要回到任务2()入口处开始执行该功能!!
   一晚上想了很久  自己也尝试写了   不知道该怎么弄   睡前发帖求助!! 不敢用跳转这种东西。。


回复

使用道具 举报

发表于 2012-5-16 09:08:34 | 显示全部楼层
我觉得你可以定义一个全局变量去试下。
   假设 任务1执行的时候,我们给i赋值为1   任务执行为2的时候,赋值为2   依次类推。
   我们全局的i默认值为1,我们的任务1在线程2里面。
  1. i=1
  2.      如果(i==1)
  3.             任务1
  4.             任务完成  i=i+1
  5.      如果结束
  6.     如果(i==2)
  7.              任务2
  8.              任务完成  i=i+1
  9.       如果结束
复制代码


线程1是判断是否死亡的。

  1. 如果(死亡)
  2.    线程.关闭(线程2)
  3.     如果(i==1)
  4.                  任务1
  5.      如果结束
  6.     如果(i==2)
  7.                  任务2
  8.       如果结束
  9. 如果结束
复制代码


你可以把你的i写道配置文件里面,就算你程序关了,再次开启的时候,你也知道你的任务做到那里了。 如果觉得我的回复可以帮你解决问题,请采纳。
回复 支持 反对

使用道具 举报

发表于 2012-5-16 07:14:26 | 显示全部楼层
有的时候别受思维的局限性。就很容易想到。
回复 支持 反对

使用道具 举报

发表于 2012-5-16 09:38:01 | 显示全部楼层
  如果别人的回复可以帮你解决问题或者提供思路,请采纳为最佳回复。
回复 支持 反对

使用道具 举报

发表于 2012-5-16 10:24:47 | 显示全部楼层
三姐的这个方法好像可以。
回复 支持 反对

使用道具 举报

发表于 2012-5-16 11:10:27 | 显示全部楼层
来看看   学习下
回复 支持 反对

使用道具 举报

发表于 2012-5-16 11:21:34 | 显示全部楼层
学习学习 。。
回复 支持 反对

使用道具 举报

发表于 2012-5-16 11:45:59 | 显示全部楼层
来学习了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-5-16 15:48:17 | 显示全部楼层
回复 3楼tyuyan的帖子

谢谢三姐  采纳了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-6-3 00:53 , Processed in 0.056115 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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