TC官方合作论坛

标题: 大神进来看下,线程总是停止,卡住不动。 [打印本页]

作者: 528522861    时间: 2015-1-20 09:58
标题: 大神进来看下,线程总是停止,卡住不动。
本帖最后由 528522861 于 2015-1-31 16:08 编辑

我是新手,不知道怎么表达情况,就是这样运行10分钟--4个小时,功能 巡标签页()就卡死了,为了查找原因,我用一个时钟,每秒取以下几个功能的句柄值,因为每个功能运行结束前都加了一句,句柄=0的代码,所以只要功能结束句柄就为0如图
[attach]18756[/attach] [attach]18757[/attach]
运行一段时间后,辅助停止运行了,巡标签页句柄不等于0有数字,说明线程运行了但没结束,日志也表明运行他之前的功能已经结束,就是进入此功能时卡住了
功能 巡标签页()内也有写日志功能,进入功能后就是写日志,但故障发生时日志并没有写,说明进巡标签页功能就卡在那里了。故障时没有任何提示。
有一次功能结果功能也出现过类似现象,就停止了,tc版本4.431,昨天晚上用4.310也是如此
大神们帮看看是什么原因呢?
---------------------------------------------------------------------------------------------------------------------
功能 巡标签页()
    //写日志“此功能开始”//
辅助.等待(1000)
    如果(编辑框.获得文本("编辑框3")==""&&编辑框.获得文本("编辑框16")=="")
        标签.设置文本("标签11","准备进入第1标签页")//这句代码的意思是在辅助界面上有个编辑框,显示状态
        打开标签1句柄=线程.开启("游戏.打开标签1","")

    否则
        如果(编辑框.获得文本("编辑框4")==""&&编辑框.获得文本("编辑框15")=="")
            标签.设置文本("标签11","准备进入第2标签页")
            打开标签2句柄=线程.开启("游戏.打开标签2","")

        否则
            如果(编辑框.获得文本("编辑框5")==""&&编辑框.获得文本("编辑框14")=="")
                标签.设置文本("标签11","准备进入第3标签页")
                打开标签3句柄=线程.开启("游戏.打开标签3","")

            否则
                如果(编辑框.获得文本("编辑框6")==""&&编辑框.获得文本("编辑框13")=="")
                    标签.设置文本("标签11","准备进入第4标签页")
                    打开标签4句柄=线程.开启("游戏.打开标签4","")

                否则
                    如果(编辑框.获得文本("编辑框7")==""&&编辑框.获得文本("编辑框12")=="")
                        标签.设置文本("标签11","准备进入第5标签页")
                        打开标签5句柄=线程.开启("游戏.打开标签5","")

                    否则
                        如果(编辑框.获得文本("编辑框8")==""&&编辑框.获得文本("编辑框11")=="")
                            标签.设置文本("标签11","准备进入第6标签页")
                            打开标签6句柄=线程.开启("游戏.打开标签6","")

                        否则
                            如果(编辑框.获得文本("编辑框9")==""&&编辑框.获得文本("编辑框10")=="")
                                标签.设置文本("标签11","准备进入第7标签页")
                                打开标签7句柄= 线程.开启("游戏.打开标签7","")

                            否则
                                进入下一关句柄=线程.开启("游戏.进入下一关","")
                            如果结束

                        如果结束
                    如果结束
                如果结束
            如果结束

        如果结束
    如果结束

    进程.释放内存()//因为有人说释放内存可以改善,但添加此代码也不行,还是卡死
    巡标签页句柄=0

功能结束
-------------------------------------------------------------------------
功能 打开标签1()//运行1分钟左右,下面的几个功能和这个一样的写日志“此功能开始”
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签1句柄=0
写日志“此功能结束”
功能结束-----------------------------------------------------------------------
功能 打开标签2()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签2句柄=0
功能结束
-----------------------------------------------------------------------
功能 打开标签3()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签3句柄=0
功能结束
-----------------------------------------------------------------------
功能 打开标签4()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签4句柄=0
功能结束
-------------------------------------------------------------------
功能 打开标签5()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签5句柄=0
功能结束
----------------------------------------------------------------------------
功能 打开标签6()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签6句柄=0
功能结束
------------------------------------------------------------------------------
功能 打开标签7()
写日志
此处是功能代码省略了
打开结果句柄=线程.开启("游戏.结果","")
打开标签7句柄=0
功能结束
-------------------------------------------------------------------------------
功能 结果()  //【此功能结束后进入巡标签页功能】
写日志“此功能开始”
此处是功能代码省略了
巡标签页句柄=线程.开启("游戏.巡标签页","")
写日志“此功能结束”
打开结果句柄=0

功能结束
感谢各位的热心帮助,现在辅助运用17个小时没停止了,估计是没问题了,我在继续实验中,什么原因我也不清楚,好像和编辑框里的内容有关系,比如0和空 做判断,我改成0和1做判断,还有就是金山卫士也有关系,卸载了。
最佳答案给第一个回复我的人吧,祝你们天天开心。









作者: cjxdn    时间: 2015-1-20 10:12
这不是什么都没有吗?
作者: 528522861    时间: 2015-1-20 10:41
cjxdn 发表于 2015-1-20 10:12
这不是什么都没有吗?

刚刚没编辑完,不知道怎么就发布了,不好意思
作者: a837198    时间: 2015-1-20 12:30
你都去线程 调用那个  结果  不卡死才怪呢
作者: a837198    时间: 2015-1-20 12:34
另外你的判断也有问题   貌似tc不支持那个多项判断   只有  如果  否则 如果结束     没有 如果 否则 否则。。。 如果结束
作者: sam7894604    时间: 2015-1-20 17:55
结果()

巡标签页()

的线程启动改成直接调用
作者: 528522861    时间: 2015-1-20 20:45
a837198 发表于 2015-1-20 12:34
另外你的判断也有问题   貌似tc不支持那个多项判断   只有  如果  否则 如果结束     没有 如果 否则 否则 ...

大神,你有没有,不要或没价值的源码,我想看看里面如果语句和其他语句都是怎么使用的。或者哪里有源码告诉我,我去下载看看,也行。
作者: 528522861    时间: 2015-1-20 20:51
sam7894604 发表于 2015-1-20 17:55
结果()

巡标签页()

谢谢你的回答,我明天试试,另外,你的头像很吓人!!
作者: 这论坛不错    时间: 2015-1-22 12:21
用选择语句,不然代码看着都头疼
作者: zyfllz    时间: 2015-1-28 00:32
如果嵌套太多,容易出错,而且每次执行的话,都是一步一步的,太耗资源.
建议使用选择语句(是如果语句的升级版呵呵,功能十分强大,熟悉之后就喜欢用了),呵呵
作者: 528522861    时间: 2015-1-28 13:40
zyfllz 发表于 2015-1-28 00:32
如果嵌套太多,容易出错,而且每次执行的话,都是一步一步的,太耗资源.
建议使用选择语句(是如果语句的升级版 ...

代码已经改了,现在是过3---5小时之间还是停止,停止的线程,不止一个,总是在这个线程结束,调用另外一个线程的时候,被调用的线程崩溃停止,我人已经崩溃了,
作者: zyfllz    时间: 2015-1-28 17:40
528522861 发表于 2015-1-28 13:40
代码已经改了,现在是过3---5小时之间还是停止,停止的线程,不止一个,总是在这个线程结束,调用另外一 ...

您这种情况可能是线程互相抢资源,您使用临界区试一试了..
作者: zyfllz    时间: 2015-1-28 17:44
zyfllz 发表于 2015-1-28 17:40
您这种情况可能是线程互相抢资源,您使用临界区试一试了..

是不是您的电脑内存满了? 定时清理内存试一试了..
作者: 528522861    时间: 2015-1-29 08:27
zyfllz 发表于 2015-1-28 17:40
您这种情况可能是线程互相抢资源,您使用临界区试一试了..

临界区,我学习一下,谢谢你的回答,
作者: 528522861    时间: 2015-1-29 08:30
zyfllz 发表于 2015-1-28 17:44
是不是您的电脑内存满了? 定时清理内存试一试了..

内存我还没仔细看,我用的是虚拟机,给了虚拟机1.888gb内存,主机是8gb内存,我研究下,
作者: 528522861    时间: 2015-1-31 15:59
zyfllz 发表于 2015-1-28 00:32
如果嵌套太多,容易出错,而且每次执行的话,都是一步一步的,太耗资源.
建议使用选择语句(是如果语句的升级版 ...

选择这么判断两个编辑框内,的内容?
作者: 528522861    时间: 2015-1-31 16:06
感谢各位的热心帮助,现在辅助运用17个小时没停止了,估计是没问题了,我在继续实验中,什么原因我也不清楚,好像和编辑框里的内容有关系,比如0和空 做判断,我改成0和1做判断,还有就是金山卫士也有关系,卸载了。
最佳答案给第一个回复我的人吧,祝你们天天开心。
作者: 2645572175    时间: 2015-6-24 17:32





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