q472448760 发表于 2025-9-23 23:59:44

HPSocket tcp封装有BUG?

本帖最后由 q472448760 于 2025-9-24 06:55 编辑

只要TPC连接上,且加上了"HP_TCP安全客户端_通信发生错误"事件(不加此事件不会报错),关闭窗口就会报错:
但是TCP没连上的话,就不会有问题!


其次如果连上了,在窗口销毁事件加上,停止 就会卡住不会退出!




测试:HP_TCP安全客户端 有问题,HP_TCP客户端则没有这个问题!

q472448760 发表于 2025-9-24 15:59:20

这不是封装问题吗???

Xelloss0618 发表于 2025-9-24 17:32:09

因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应该在关闭主窗口前结束掉客户端。
停止也是,HP客户端的大部分操作都是异步的,如果窗口先销毁就可能会出问题。

创世魂 发表于 2025-9-24 18:20:18

Xelloss0618 发表于 2025-9-24 17:32
因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应 ...

到位!!

创世魂 发表于 2025-9-24 18:20:54

起始也不用刻意调用这个方法,如果窗口关闭了,会自动停止的。

q472448760 发表于 2025-9-24 22:17:58

Xelloss0618 发表于 2025-9-24 17:32
因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应 ...

我知道是主窗口被销毁了 导致的,那放在即将销毁 算吗!所以我问是不是封装有问题。而且我不停止,带上这个事件就有问题

q472448760 发表于 2025-9-24 22:19:14

本帖最后由 q472448760 于 2025-9-24 22:21 编辑

放在我的主窗口_可否被关闭事件是正常的

q472448760 发表于 2025-9-24 22:22:46

创世魂 发表于 2025-9-24 18:20
起始也不用刻意调用这个方法,如果窗口关闭了,会自动停止的。

带上这个事件,关闭窗口,不停就直接就报错,停就卡住主线程

Xelloss0618 发表于 2025-9-24 23:21:22

q472448760 发表于 2025-9-24 22:17
我知道是主窗口被销毁了 导致的,那放在即将销毁 算吗!所以我问是不是封装有问题。而且我不停止,带上这 ...

有两处地方可以改善一下:

<火山程序 类型 = "通常" 版本 = 1 />
取消事件挂接 (TCP) // 先取消事件,就没有发送事件的后续问题了
TCP.停止 ()
判断循环 (TCP.当前状态 != HP状态.已经停止) // 相当于转换成同步命令,确保客户端在关闭主窗口之前已经停止
{
    界面延时 (100)
}

q472448760 发表于 2025-9-24 23:31:35

看看把!之前好像没发现有这问题。。。
页: [1] 2
查看完整版本: HPSocket tcp封装有BUG?