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

vb多线程工作有关问题

2012-01-15 
vb多线程工作问题VB的一个窗口内包含INET下载控件,亦包括WINSOCK传送控件.2个组件事件中,均有DO....LOOP代

vb多线程工作问题
VB的一个窗口内包含INET下载控件,亦包括WINSOCK传送控件.
2个组件事件中,均有
DO....
LOOP
代码.
如果只进行INET控件的下载,工作非常正常.
如果只进行WINSOCK的传送文件工作,工作亦非常正常.
想增加效果,于是让这两个控件同时进行,VB出意外,无法同步运行.
想个办法加入2个标签,分别标注INET和WSK的状态,
思路是INET工作前,先检查一下WSK的标签是否忙,如果忙则用DO等待到WSK不忙为止,然后INET继续工作.至于WSK方式,则是先让INET的状态变为空闲,然后才启用WSK工作.
即WSK优先于INET
但是意外仍然存在,还是无法同步工作,网上找了一下说是2个DO属于多线程工作,VB一般情况下是不支持的.寻解决方法或代码.

[解决办法]
VB对多线程支持很差
可以使用其他语言写的DLL结合完成
[解决办法]
DO 跟多线程没有关系吧?
[解决办法]
无论inet和winsock,他们下载的时候都会启动一个线程
但是你的do...loop却在主线程内,主线程只能控制一个东西
[解决办法]
说的详细点,winsock和inet每当数据到达的时候都会Invoke主线程,这样就可能造成阻塞

热点排行