递归火山软件开发平台

标题: HPSocket tcp封装有BUG? [打印本页]

作者: q472448760    时间: 3 天前
标题: HPSocket tcp封装有BUG?
本帖最后由 q472448760 于 2025-9-24 06:55 编辑

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


其次如果连上了,在窗口销毁事件加上,停止 就会卡住不会退出!
(, 下载次数: 19)



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

作者: q472448760    时间: 前天 15:59
这不是封装问题吗???
作者: Xelloss0618    时间: 前天 17:32
因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应该在关闭主窗口前结束掉客户端。
停止也是,HP客户端的大部分操作都是异步的,如果窗口先销毁就可能会出问题。
作者: 创世魂    时间: 前天 18:20
Xelloss0618 发表于 2025-9-24 17:32
因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应 ...

到位!!
作者: 创世魂    时间: 前天 18:20
起始也不用刻意调用这个方法,如果窗口关闭了,会自动停止的。
作者: q472448760    时间: 前天 22:17
Xelloss0618 发表于 2025-9-24 17:32
因为这个事件是异步的,你关闭主窗口后,它还在发送事件到主窗口,由于主窗口已经被销毁了,自然就报错。应 ...

我知道是主窗口被销毁了 导致的,那放在即将销毁 算吗!所以我问是不是封装有问题。而且我不停止,带上这个事件就有问题
作者: q472448760    时间: 前天 22:19
本帖最后由 q472448760 于 2025-9-24 22:21 编辑

放在  我的主窗口_可否被关闭  事件是正常的
作者: q472448760    时间: 前天 22:22
创世魂 发表于 2025-9-24 18:20
起始也不用刻意调用这个方法,如果窗口关闭了,会自动停止的。

带上这个事件,关闭窗口,不停就直接就报错,停就卡住主线程
作者: Xelloss0618    时间: 前天 23:21
q472448760 发表于 2025-9-24 22:17
我知道是主窗口被销毁了 导致的,那放在即将销毁 算吗!所以我问是不是封装有问题。而且我不停止,带上这 ...

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

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

作者: q472448760    时间: 前天 23:31
看看把!之前好像没发现有这问题。。。
作者: q472448760    时间: 昨天 00:04
是用WTL界面的问题,MFC没问题,难怪之前一直没有这问题。吴总处理下把,虽然我不用WTL!!
作者: q472448760    时间: 昨天 10:44
Xelloss0618 发表于 2025-9-24 23:21
有两处地方可以改善一下:

= =其实放 窗口即将关闭  停止就可以了。
也就是WTL界面才会有问题,我不用。官方不管就算了吧




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4