TC官方合作论坛

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

[已解决] “临界区”的使用

[复制链接]
发表于 2012-10-31 13:36:07 | 显示全部楼层 |阅读模式

马上加入TC

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

x
     下面的使用临界区的命令,是很简单的命令,如果是多线程命令,是不是要分成几个临界区,进入-退出-进入-退出。。 这样。

线程.进入临界区(对象句柄)
        窗口.提交按键(句柄,13)
        窗口.提交字符串(句柄,"你好TC!"+转换.整型转字符型(句柄))
        窗口.提交按键(句柄,13)
        线程.离开临界区(对象句柄)
回复

使用道具 举报

发表于 2012-10-31 13:49:39 | 显示全部楼层
一般后台键盘,发送字符串 无需使用临界区

临界区,主要是防止多个线程同时运行,相互影响 而采用排队的一种方法
回复 支持 反对

使用道具 举报

发表于 2012-10-31 13:52:18 | 显示全部楼层
临界区是为了防止同一时间同时用到鼠标或是键盘.轮着来操作.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-31 14:05:16 | 显示全部楼层
回复 2楼陌上青衣。的帖子

如问题上所说的,是不是要进入-退出-进入-退出,这样才可以开启两个线程却不会互相影响?
回复 支持 反对

使用道具 举报

发表于 2012-10-31 15:14:37 | 显示全部楼层
楼上两位老大 为什么不直接回答问题呵呵,我可能比较理解新手问题,多线程公用一个代码(例如前台3开切换窗口)是要想根据任务逻辑分成若干个片段,在第一个片段开始的时候写进入临界,第一个片段结束时写离开临界+进入临界到地2个片段结束写离开。。。。知道最后结束是写离开临界,我跟你举了我写
  1. 辅助.等待(1000)   
  2. 字符串.分割(系统.枚举("MainWnd class of ArkEngine",1),"|",句柄数组)
  3. 数组.大小(句柄数组,长度)
  4. 选择(长度)
  5. 条件 1:
  6. 线程1=线程.开启("传美QQ3.新帮会初级任务",句柄数组[0])
  7. 条件 2:
  8. 线程1=线程.开启("传美QQ3.新帮会初级任务",句柄数组[0])
  9. 线程2=线程.开启("传美QQ3.新帮会初级任务",句柄数组[1])
  10. 条件 3:
  11. 线程1=线程.开启("传美QQ3.新帮会初级任务",句柄数组[0])
  12. 线程2=线程.开启("传美QQ3.新帮会初级任务",句柄数组[1])
  13. 线程3=线程.开启("传美QQ3.新帮会初级任务",句柄数组[2])
  14. 选择结束
复制代码
  先开3个线程对应3个窗口,
  1. 循环(真)
  2. 线程.进入临界区(对象句柄)
  3. 窗口.激活(转换.字符型转整型(句柄,0))
  4. 辅助.等待(1000)   
  5. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,19)+"激活窗口")
  6. //图像.区域找色(702,289,993,417,#FFFF00,0,x15,y15) //找寻路蓝色字
  7. 图像.找图(834,49,966,84,"rc:白屏寨.bmp",#505050,1.0,1,x10,y10)
  8. 图像.找图(695,283,956,405,"rc:打到1.bmp",#505050,1.0,1,x21,y21)
  9. 图像.找图(695,283,956,405,"rc:采集.bmp",#505050,1.0,1,x22,y22)//找任务描述
  10. 图像.找图(695,283,956,405,"rc:护送.bmp",#505050,1.0,1,x23,y23)//找任务描述护送
  11. 如果(x23>0||x21>0||x22>0)
  12. 如果(x23>0)
  13. 传美QQ3.帮会护送任务(句柄)
  14. 如果(传美QQ3.帮会活动寻路())
  15. 线程.离开临界区(对象句柄)     
  16. 否则
  17. 线程.离开临界区(对象句柄)
  18. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"完成跳出")   
  19. 跳出
  20. 如果结束
  21. 如果结束
  22. 如果(x21>0||x22>0)
  23. 传美QQ3.帮会蓝字寻路()
  24. 线程.离开临界区(对象句柄)
  25. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"离开临界")
  26. 线程.进入临界区(对象句柄)
  27. 窗口.激活(转换.字符型转整型(句柄,0))
  28. 辅助.等待(1000)   
  29. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,19)+"激活窗口")
  30. 传美QQ3.帮会判断停下()
  31. 传美QQ3.帮会打怪采集()
  32. 如果(传美QQ3.帮会活动寻路())
  33. 线程.离开临界区(对象句柄)
  34. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"离开临界")     
  35. 否则
  36. 线程.离开临界区(对象句柄)
  37. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"完成跳出")   
  38. 跳出
  39. 如果结束
  40. 如果结束
  41. 否则
  42. 如果(x10>0)   
  43. 传美QQ3.帮会接取任务()  
  44. 传美QQ3.帮会蓝字寻路()
  45. 传美QQ3.帮会死亡升级()
  46. 线程.离开临界区(对象句柄)
  47. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"离开临界")
  48. 否则   
  49. //传美QQ3.帮会活动寻路(句柄)
  50. 如果(传美QQ3.帮会活动寻路())
  51. 线程.离开临界区(对象句柄)   
  52. 否则
  53. 线程.离开临界区(对象句柄)
  54. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"完成跳出")   
  55. 跳出
  56. 如果结束
  57. 线程.进入临界区(对象句柄)
  58. 窗口.激活(转换.字符型转整型(句柄,0))
  59. 辅助.等待(1000)   
  60. 循环(真)
  61. 图像.找图(834,49,966,84,"rc:白屏寨.bmp",#505050,1.0,1,x10,y10)
  62. 如果(x10>0)
  63. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"来到白屏")     
  64. 跳出
  65. 否则
  66. 辅助.等待(1000)
  67. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"跑路等待")
  68. 如果结束
  69. 循环结束
  70. 传美QQ3.帮会接取任务()  
  71. 传美QQ3.帮会蓝字寻路()
  72. 传美QQ3.帮会死亡升级()
  73. 线程.离开临界区(对象句柄)   
  74. 列表框.增加文本("列表框0","时间"+字符串.截取(系统.时间(0),10,18)+"离开临界")      
  75. 如果结束
  76. 如果结束  
  77. 循环结束
复制代码
例子你参考下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-31 16:51:17 | 显示全部楼层
回复 5楼c724211922的帖子

如果你称第二,谁敢称第一。
我学TC有一个月了,像你这么尽职尽责回答问题的,头一次碰到。
很多人都藏着掖着,懒得搭理我们这些新手。
千言万语,汇成一句话,谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-31 17:06:04 | 显示全部楼层
回复 5楼c724211922的帖子

高手,为啥一个进入临界区以后,有好几个离开临界区。
回复 支持 反对

使用道具 举报

发表于 2012-11-1 13:06:37 | 显示全部楼层
回复 7楼wudongdonghehe的帖子

呵呵谢谢理解我 还没到高手呢,不管有多少出临界你仔细看 只能有一个出临界成立, 比如说如果  条件1成立马上出临界,否则 执行完条件2  出临界。
回复 支持 反对

使用道具 举报

发表于 2014-2-5 14:36:04 | 显示全部楼层
新手表示看不懂{:soso_e154:}
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-24 05:56 , Processed in 0.038120 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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