关于SUBCLASS的问题
我封装了WINSOCK到一个类中
MAIN窗口初始化后打开 form2窗口
from2 的form_load 使用了我封装的SOCKET类去调用一些交易
目前为脱机状态, socket 一直在connect
当我从form2切换回 main窗口点退出(代码是unload所有窗口后 END) 程序就直接报错VB关闭
原因是socket一直在循环connect
我在main窗口响应函数里 unload form2
unload 的时候根本不会走到connect函数里...
DOEVENTS 也没用
我用了很多方法 包括sendmessage 用消息来关闭form2也没有用
但如果我打开form2 然后再正常关闭form2 再点main窗口退出就不会报错.
[解决办法]
退出前,让其先退出Form2 或 关闭 Socket
[解决办法]
对于一个单线程的应用程序来说,这么写是不合适的,尽管用了DoEvents,但是代码还是顺序执行的.
上下文问题,在Load事件中执行循环,导致Load事件无法结束,Unload方法是无法正常结束的.
如果没有DoEvents,连UI都不会Paint出来.
Connect方法应该不是异步的方法,有时候会因为网络问题而一直阻塞直到API超时,影响用户体验,我猜.
即便你想用循环,请不要放在Load事件中.
希望对你有帮助.