精易论坛

标题: TC脚本暂停线程和恢复线程时容易脚本很经常发生卡死 [打印本页]

作者: 1357396340    时间: 2025-5-10 12:43
标题: TC脚本暂停线程和恢复线程时容易脚本很经常发生卡死
有没有大佬会解决这个问题

作者: 你的猫    时间: 2025-5-10 12:43
变量 线程句柄 = 0
变量 是否暂停 = 假

// ================ 主程序 ================
功能 启动_点击()
    // 创建线程
    线程句柄 = 线程开启("工作线程", "")
    输出("工作线程已启动")
结束

功能 暂停_点击()
    如果(线程句柄 == 0)
        输出("请先启动线程")
        返回
    结束
   
    如果(是否暂停 == 假)
        线程暂停(线程句柄)
        是否暂停 = 真
        输出("线程已暂停")
    否则
        输出("线程已经处于暂停状态")
    结束
结束

功能 恢复_点击()
    如果(线程句柄 == 0)
        输出("请先启动线程")
        返回
    结束
   
    如果(是否暂停 == 真)
        线程恢复(线程句柄)
        是否暂停 = 假
        输出("线程已恢复")
    否则
        输出("线程未处于暂停状态")
    结束
结束

功能 停止_点击()
    如果(线程句柄 == 0)
        输出("没有可停止的线程")
        返回
    结束
   
    线程关闭(线程句柄)
    线程句柄 = 0
    是否暂停 = 假
    输出("线程已停止")
结束

// ================ 工作线程函数 ================
功能 工作线程()
    变量 i = 0
    循环(真)
        i = i + 1
        输出("线程工作中... " + 到字符串(i))
        辅助.等待(1000) // 等待1秒
        
        // 检查是否应该退出
        如果(线程检测退出())
            输出("线程收到退出信号")
            跳出循环
        结束
    结束
    输出("工作线程结束")
结束
[size=16.002px]如需控制其他进程的线程,需要使用更底层的API调用:
变量 kernel32 = 动态库加载("kernel32.dll")
变量 OpenThread = 动态库调用(kernel32, "OpenThread", 整数型, 整数型, 整数型, 整数型)
变量 SuspendThread = 动态库调用(kernel32, "SuspendThread", 整数型, 整数型)
// 其他API函数...



作者: fireandice    时间: 2025-5-10 15:49
1.可以查看卡死的原因在哪儿,针对性修复
2.修改新的暂停线程和恢复线程,参考大漠的方法,在延时中控制
作者: 小海MM    时间: 2025-5-10 20:38
有死循环吧 线程暂停了  死循环没跳出来




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4