Question

Voici mon statut d'application:

But - télécharger plusieurs fichiers de la liste à partir d'Internet Approche - a créé un simple « sous forme de téléchargement ». Après un certain temps, je juste besoin des formes plus parce que j'avais plus d'une liste de fichiers à télécharger. Juste résolu qu'en ajoutant un MDIForm à mon projet, ajouter un bouton pour créer une autre instance « sous forme de téléchargement » et le tour est joué. Apparemment, mon problème a été résolu. Mais non: (

Lorsque j'appuie sur mon bouton « télécharger » dans ma forme instance3, les autres instances de forme (2 et 1) est en attente de téléchargement du contenu (je reçois un délai d'attente parfois) jusqu'à ce que la forme instance3 se termine tous les téléchargements et ainsi de suite , pour toutes les autres formes. Donc, même si je sais que mon application n'est pas multi-thread, les multiples instances de la même forme sont en conflit (composante Inet, probablement) et je ne peux pas télécharger plusieurs fichiers en même temps. Inet et ma fonction de téléchargement sont définies dans la forme.

Que puis-je faire pour résoudre ce problème? comment puis-je télécharger plusieurs fichiers en même temps?

Merci

edit:

Je suis en train d'utiliser la suggestion « wqw », mais je suis face à quelques problèmes: Dans le download_form, j'ai MSHFLexGrid, avec 2 colonnes: l'une avec l'URL et l'autre avec le destin de fichier. J'itérer jeter toutes les lignes pour télécharger les fichiers et les enregistrer. Avec l'approche suggérée par « wqw », comment puis-je distinguer chaque téléchargement pour que je puisse l'enregistrer avec le nom correctement indiqué dans la grille?

Était-ce utile?

La solution

Qu'est-ce que vous utilisez pour le téléchargement réel http? Je voudrais essayer simples Téléchargements Asynchronous et oublier les MDIForm. Vraiment!

Autres conseils

VB6, lui-même, est un seul thread. Donc sortir le téléchargement à différentes formes ne vous aidera pas.

Ce que j'ai utilisé dans le passé est le minuterie objet en conjonction avec un ActiveX EXE . Cette approche vous donnera une capacité de localiser toute la logique de téléchargement en un seul endroit, contrôler comme vous contrôlez un objet régulier et le faire tourner dans un EXE séparé, donc par défaut le rendant multi-thread.

Ainsi, la façon dont cela fonctionne est comme ceci:

  1. Vous appelez la méthode de téléchargement sur l'objet EXE ActiveX
  2. Dans la méthode de téléchargement, vous instancier la minuterie et avoir le coup d'envoi presque immédiatement.
  3. Vous obtenez de la méthode de téléchargement, donnant ainsi le contrôle à l'entité qui l'a appelée.
  4. Ensuite, vous communiquer revenir à l'application principale via des événements (par exemple downloadProgress ou downloadComplete, etc ...)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top