这是我的应用状态:
目的 - 从互联网下载多个列表文件 方法 - 创建了一个简单的“下载表单”。过了一段时间,我只需要更多表单,因为我有多个文件列表要下载。刚解决这个问题,通过在我的项目中添加一个MDIform,添加一个按钮来创建另一个“下载表单”实例并vo。显然,我的问题已经解决了。但不是:(
当我在我的form-instance3中按下“下载”按钮时,其他表单实例(2和1)在下载内容时挂起(有时会出现超时),直到form-instance3终止所有下载等等,对于所有其他形式。所以,即使我知道我的应用程序不是多线程的,同一个表单的多个实例也存在冲突(可能是Inet组件),我无法同时下载多个文件。 Inet和我的下载功能在表单中定义。
我该怎么做才能解决这个问题?如何同时下载多个文件?
非常感谢
编辑:
我正在尝试使用“wqw”建议,但我遇到了一些问题: 在download_form中,我有一个MSHFlexgrid,有两列:一列是URL,另一列是文件命名。我正在迭代抛出所有行来下载文件并保存它们。使用“wqw”建议的方法,我如何区分每个下载,以便我可以使用网格中指示的正确名称保存它?
答案 0 :(得分:3)
你对实际的http下载有什么用?我会尝试Simple Asynchronous Downloads而忘记MDIForm。真!
答案 1 :(得分:2)
VB6本身就是单线程的。所以打破下载到不同的形式将无济于事。
我过去使用的是Timer object和ActiveX EXE。这种方法使您能够在一个位置本地化所有下载逻辑,像控制常规对象一样控制它,并使其在单独的EXE中运行,因此默认情况下使其成为多线程。
所以它的工作方式是这样的: