TC官方合作论坛

 找回密码
 立即注册
查看: 1624|回复: 4

[已解决] 求教 线程 死循环的问题

[复制链接]
发表于 2014-2-13 01:44:48 | 显示全部楼层 |阅读模式

功能 按钮0_点击()
    //这里添加你要执行的代码
    循环(真)
        变量 x,y
        是否找到=图像.区域找色(388,732,885,764,#CA964B,0,x,y)
        如果(x > 0)
            鼠标.移动(x,y)
            鼠标.左键单击(1)

            辅助.命令("D:\\1.mp3",false)


        如果结束
    循环结束
功能结束

空间结束

请问我怎么弄多线程,以至于不在循环中卡死,最好检测到的时候能暂停!求教各位大神!万分感谢!

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2014-2-16 13:46:51 | 显示全部楼层
功能 按钮0_点击()
    //这里添加你要执行的代码
    循环(真)
        变量 x,y
        是否找到=图像.区域找色(388,732,885,764,#CA964B,0,x,y)
        如果(x > 0)
            鼠标.移动(x,y)
            鼠标.左键单击(1)
            辅助.命令("D:\\1.mp3",false)
        如果结束
    循环结束

功能结束//
//
//
当你点击了 按钮0
TC就会执行 按钮0点击事件里面的内容,一直到执行完为止。当你在按钮的点击事件里面加入了循环,那他就永远执行不完这个按钮事件了,也就是为什么会出现卡死的原因。
解决的办法就是吧你要执行的内容单独写一个功能,并用线程启动的方式来启动这个功能。别忘了TC的一大优点就是线程。

具体方法
功能 按钮0_点击()
        线程.开启("空间名称.功能名称","这里可以为空也可以写传参")
功能结束

功能 功能名称()
    循环(真)
        变量 x,y
        是否找到=图像.区域找色(388,732,885,764,#CA964B,0,x,y)
        如果(x > 0)
            鼠标.移动(x,y)
            鼠标.左键单击(1)
            辅助.命令("D:\\1.mp3",false)
        如果结束
    循环结束

功能结束

回复 支持 反对

使用道具 举报

发表于 2014-2-13 02:13:01 | 显示全部楼层
自己写一个函数。然后把循环部分代码放函数里去。再用线程执行该函数 。比如
功能 死循环体()
    循环(真)
           。。。
           。。。
    循环结束
功能结束

然后 在按钮事件里写。线程.开启("空间名.死循环体",参数)
最好把线程句柄保存起来,方便控制
线程句柄=线程.开启("空间名.死循环体",参数)

具体函数的用法参考下帮助手册吧。
回复 支持 反对

使用道具 举报

发表于 2014-2-21 01:24:32 | 显示全部楼层
可以加sleep
回复 支持 反对

使用道具 举报

发表于 2014-2-21 01:26:35 | 显示全部楼层
线程的优点本来就是窗口不卡死,
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-28 21:48 , Processed in 0.041536 second(s), 25 queries .

Powered by 海安简单软件服务部

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

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