首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VB6 - Inet挂起-多个表单实例

VB6 - Inet挂起-多个表单实例
EN

Stack Overflow用户
提问于 2009-10-02 15:42:04
回答 2查看 1.4K关注 0票数 1

以下是我的应用程序状态:

目的-从互联网下载多个列表文件-创建一个简单的“下载表格”。过了一段时间,我只需要更多的表单,因为我有多个文件列表要下载。通过在我的项目中添加一个MDIform来解决这个问题,添加一个按钮来创建另一个“下载表单”实例和voilà。显然我的问题解决了。但不是:(

当我在窗体-instance3中按下“下载”按钮时,其他表单实例(2和1)挂起下载内容(有时会超时),直到窗体实例3终止了所有其他表单的下载等等。因此,即使我知道我的应用程序不是多线程的,但同一表单的多个实例是冲突的(想必是Inet组件),而且我不能同时下载多个文件。Inet和我的下载功能是在表单中定义的。

我能做些什么来解决这个问题?如何同时下载多个文件?

编辑:

我正在尝试使用"wqw“建议,但我面临一些问题:在download_form中,我有一个MSHFlexgrid,包含两个列:一个列具有URL,另一个列有文件命运。我正在迭代抛出所有行来下载文件并保存它们。使用"wqw“建议的方法,如何区分每个下载,以便用网格中指定的正确名称保存它?

EN

Stack Overflow用户

发布于 2009-10-05 02:40:51

VB6本身是单线程的。所以以不同的形式下载对你没什么帮助。

我过去使用的是定时器对象ActiveX EXE。这种方法将使您能够本地化所有的下载逻辑在一个地方,控制它就像你控制一个常规的对象,并让它运行在一个单独的EXE,因此默认情况下使它多线程。

所以它的工作方式是这样的:

  1. 调用ActiveX EXE对象上的下载方法
  2. 在下载方法中,您实例化定时器并让它几乎立即启动。
  3. 您将退出下载方法,从而将控制权返回给调用它的实体。
  4. 然后通过事件(例如DownloadProgress或DownloadComplete等)与主应用程序通信。
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1510340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档