精易论坛

标题: 麻烦大佬指点下原因在什么地方 [打印本页]

作者: liudewei666    时间: 2024-12-12 19:44
标题: 麻烦大佬指点下原因在什么地方
  
窗口程序集名保 留  保 留备 注
窗口程序集_窗口1_医保   
变量名类 型数组备 注
线程整数型  

子程序名返回值类型公开备 注
_按钮1_被单击  
按钮1.禁止 = 真
线程 = 线程_启动 (&YB_network, , )
子程序名返回值类型公开备 注
YB_network  
变量名类 型静态数组备 注
network整数型 
计次循环首 (40, )
network = 通信测试 (“10.109.103.38”, 1000)
判断 (network = -1)
外形框2_red.可视 = 真
外形框1_green.可视 = 假
日志 (“分析结果:”“网络故障”)
判断 (network ≠ -1)
外形框2_red.可视 = 假
外形框1_green.可视 = 真



计次循环尾 ()
子程序名返回值类型公开备 注
_窗口_医保网络测试_创建完毕  
外形框1_green.可视 = 假
外形框2_red.可视 = 假
子程序名返回值类型公开备 注
日志  
参数名类 型参考可空数组备 注
输出信息文本型
变量名类 型静态数组备 注
信息内容文本型 
如果 (编辑框_nettest.内容 ≠ “”)
信息内容 = 编辑框_nettest.内容
编辑框_nettest.内容 = 信息内容 + #换行符 + 输出信息
编辑框_nettest.发送信息 (277, 7, 0)
编辑框_nettest.内容 = 输出信息

子程序名返回值类型公开备 注
_窗口_医保网络测试_将被销毁  
线程_销毁 (线程)

现在的问题是:这个是被载入的窗口,当我关闭这个窗口,之前的启动窗(主窗口就会卡死)或者自动就退了,不使用循环就没问题,麻烦大佬看下原因,告诉我下谢谢,我使用时钟也是一样的问题。

作者: 我很低调    时间: 2024-12-12 19:48
循环里加个逻辑变量 窗口销毁 逻辑变量=真 跳出循环
作者: LEOONL    时间: 2024-12-12 19:48
弄个线程句柄  窗口销毁前结束线程句柄
作者: shenmia    时间: 2024-12-12 19:51
循环中加入

处理事件()

试试?
作者: liudewei666    时间: 2024-12-12 19:52
我很低调 发表于 2024-12-12 19:48
循环里加个逻辑变量 窗口销毁 逻辑变量=真 跳出循环

好像只有窗口关闭我也是这么想的
作者: liudewei666    时间: 2024-12-12 19:52
LEOONL 发表于 2024-12-12 19:48
弄个线程句柄  窗口销毁前结束线程句柄

不行啊哥 我试了,我代码里面结束了线程的
作者: liudewei666    时间: 2024-12-12 19:54
shenmia 发表于 2024-12-12 19:51
循环中加入

处理事件()

不行,是加在最后吗?
作者: liudewei666    时间: 2024-12-12 19:55
LEOONL 发表于 2024-12-12 19:48
弄个线程句柄  窗口销毁前结束线程句柄

怎么样判断窗口被销毁了呢?
作者: shenmia    时间: 2024-12-12 19:56
liudewei666 发表于 2024-12-12 19:54
不行,是加在最后吗?

加到循环中
作者: shenmia    时间: 2024-12-12 19:57
shenmia 发表于 2024-12-12 19:56
加到循环中

计次循环首 (40, )
network = 通信测试 (“10.109.103.38”, 1000)
判断 (network = -1)
外形框2_red.可视 = 真
外形框1_green.可视 = 假
日志 (“分析结果:” + “网络故障”)
判断 (network ≠ -1)
外形框2_red.可视 = 假
外形框1_green.可视 = 真

处理事件()

计次循环尾 ()
作者: liudewei666    时间: 2024-12-12 20:01
shenmia 发表于 2024-12-12 19:57
计次循环首 (40, )
network = 通信测试 (“10.109.103.38”, 1000)
判断 (network = -1)

不行 我试了
作者: liudewei666    时间: 2024-12-12 20:02
shenmia 发表于 2024-12-12 19:57
计次循环首 (40, )
network = 通信测试 (“10.109.103.38”, 1000)
判断 (network = -1)

刚刚我没表述清楚抱歉,我意思就是加在循环里面,的最后
作者: liudewei666    时间: 2024-12-12 20:05
应该是窗口关闭了,内存还没释放,循环还在执行,我测试了循环完就没这种情况一切正常,各位大佬可以告诉我下怎么样判断窗口被关闭然后 我在跳出循环
作者: AcLe    时间: 2024-12-12 20:37
liudewei666 发表于 2024-12-12 20:05
应该是窗口关闭了,内存还没释放,循环还在执行,我测试了循环完就没这种情况一切正常,各位大佬可以告诉我 ...

给个建议,要不新建一个新的程序测试一下如果窗口关闭了会返回什么?
比如   

调试输出(_窗口1.可视)
或者 _窗口1.关闭?不知道有没有这个命令....
不知道这样程序会不会出错,总得试试不是吗?
然后再在你这个循环里加入判断?
我也是新手,而且电脑不在身边,不能帮你测试了

补充内容 (2024-12-12 20:41):
或者是 在循环里加入
如果真(_窗口1.销毁=真)
跳出循环()

有没有这个命令也不太清楚....试试看
作者: renjiewl    时间: 2024-12-12 20:42
线程操作控件 先判断控件是否有效  

是否已创建 (外形框1)

作者: AcLe    时间: 2024-12-12 21:19
加一个全局变量,类型为逻辑型
比如全局变量名叫是否销毁
.子程序 _窗口_医保网络测试_将被销毁
是否销毁=真
_窗口_医保网络测试.销毁()

你的计次循环里加入如果真(是否销毁=真),然后跳出循环。计次循环下面再赋值  是否销毁=假
作者: liudewei666    时间: 2024-12-12 21:23
renjiewl 发表于 2024-12-12 20:42
线程操作控件 先判断控件是否有效  

是否已创建 (外形框1)

没看懂,可以在详细点吗?谢谢
作者: liudewei666    时间: 2024-12-12 21:24
AcLe 发表于 2024-12-12 20:37
给个建议,要不新建一个新的程序测试一下如果窗口关闭了会返回什么?
比如   

不行测试了
作者: liudewei666    时间: 2024-12-12 21:30
AcLe 发表于 2024-12-12 21:19
加一个全局变量,类型为逻辑型
比如全局变量名叫是否销毁
.子程序 _窗口_医保网络测试_将被销毁

还是不行理论上是可以的
作者: liudewei666    时间: 2024-12-12 21:32
我使用了一种办法目前可以就是把代码全部复制到,窗口将销毁子程序里面,但是有个问题,要卡顿几秒
作者: liudewei666    时间: 2024-12-13 12:20
.版本 2
.支持库 EThread

.子程序 _窗口_医保网络测试_将被销毁


.计次循环首 (1, )
    network = 通信测试 (“10.109.103.38”, 1000)
    .计次循环首 (4, 计次)
        结果 [计次] = 通信测试 (“10.108.68.254”, 1000)

    .计次循环尾 ()
    跳出循环 ()
.计次循环尾 ()
强制结束线程 (线程)
我把这个加在到了里面现在可以解决不闪退,但是主界面会卡死4秒,各位大佬有解决的办法吗?




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