首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于SUBCLASS的有关问题

2013-08-04 
关于SUBCLASS的问题我封装了WINSOCK到一个类中MAIN窗口初始化后打开form2窗口from2 的form_load 使用了我

关于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事件中.

希望对你有帮助.

热点排行