以下是我的应用程序状态:
目的-从互联网下载多个列表文件-创建一个简单的“下载表格”。过了一段时间,我只需要更多的表单,因为我有多个文件列表要下载。通过在我的项目中添加一个MDIform来解决这个问题,添加一个按钮来创建另一个“下载表单”实例和voilà。显然我的问题解决了。但不是:(
当我在窗体-instance3中按下“下载”按钮时,其他表单实例(2和1)挂起下载内容(有时会超时),直到窗体实例3终止了所有其他表单的下载等等。因此,即使我知道我的应用程序不是多线程的,但同一表单的多个实例是冲突的(想必是Inet组件),而且我不能同时下载多个文件。Inet和我的下载功能是在表单中定义的。
我能做些什么来解决这个问题?如何同时下载多个文件?
编辑:
我正在尝试使用"wqw“建议,但我面临一些问题:在download_form中,我有一个MSHFlexgrid,包含两个列:一个列具有URL,另一个列有文件命运。我正在迭代抛出所有行来下载文件并保存它们。使用"wqw“建议的方法,如何区分每个下载,以便用网格中指定的正确名称保存它?
发布于 2009-10-04 20:11:34
您使用什么实际的http下载?我会尝试简单异步下载,忘记MDIForm。真的!
发布于 2009-10-05 02:40:51
VB6本身是单线程的。所以以不同的形式下载对你没什么帮助。
我过去使用的是定时器对象和ActiveX EXE。这种方法将使您能够本地化所有的下载逻辑在一个地方,控制它就像你控制一个常规的对象,并让它运行在一个单独的EXE,因此默认情况下使它多线程。
所以它的工作方式是这样的:
https://stackoverflow.com/questions/1510340
复制相似问题