TC官方合作论坛

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

[已解决] 临界区的问题!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-5-6 22:58:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
临界区 不能再 循环里面使用么!
我一使用  程序就死了!
回复

使用道具 举报

地板
发表于 2014-5-7 01:29:52 | 只看该作者
句柄A=线程.开启("事件测试A.线程A",对象句柄)
     句柄B=线程.开启("事件测试A.线程B",对象句柄)
回复 支持 反对

使用道具 举报

沙发
发表于 2014-5-6 23:06:07 | 只看该作者
代码放上来 才知道
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-5-6 23:21:34 | 只看该作者
功能 线程A()
    循环(真)
    线程.进入临界区(对象句柄)  //进入临界区,这时候其他线程不能访问临界区中资源,想要访问的线程会被挂起等待
    辅助.等待(500)
    辅助.消息框("点点滴滴")
    线程.离开临界区(对象句柄)     //离开临界区,这时候其他线程可以访问临界区中的资源
    循环结束
    返回 真
功能结束
功能 线程B()
    循环(真)
        线程.进入临界区(对象句柄)     //进入临界区,这时候其他线程不能访问临界区中资源,想要访问的线程会被挂起等待
        

        
   
            辅助.等待(500)
    辅助.消息框("点点")
    线程.离开临界区(对象句柄)
        //离开临界区,这时候其他线程可以访问临界区中的资源
    循环结束
    返回 真
功能结束
功能 开始_点击()
    对象句柄=线程.创建临界区()    //创建临界区对象
    i=10               //初始化 i
    句柄A=线程.开启("事件测试A.线程A","对象句柄")
    句柄B=线程.开启("事件测试A.线程B","对象句柄")
    线程.等待(句柄A,-1) //无限等待线程A,B,这个等待很重要,我们可以用别的方法代替,如果这里不等待函数就执行完返回了
    线程.等待(句柄B,-1) //但是线程里的代码却可能还没有执行完毕,下一句删除了临界区对象,这时候如果还有别的语句线程却还在执行,程序可能崩溃
    线程.删除临界区(对象句柄)//最后记得删除临界区对象释放资源,这时候如果再 线程.进入临界区(对象句柄) 程序就可能崩溃,因为对象不存在了
    返回 真
功能结束


这个 运行 两下 就挂了!
回复 支持 反对

使用道具 举报

5#
发表于 2014-5-7 08:37:37 | 只看该作者
开启线程的参数 "对象句柄"  加上引号成了文本型常量了   去掉引号才是变量
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2014-5-7 13:29:43 | 只看该作者
取消了 但是  两个 线程里面都   无限 循环的 话 一会  程序就卡死了!  有没法 解决的啊!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-27 10:54 , Processed in 0.165229 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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