Pregunta

Aquí está mi estado de aplicación:

Objetivo - descargar varios archivos de la lista de internet Enfoque - creó una "forma de descarga" simple. Después de un tiempo, sólo se necesita más formas porque tenía más de una lista de archivos para descargar. Sólo resuelto que mediante la adición de un MDIForm a mi proyecto, añadir un botón para crear otra instancia "forma de descarga" y listo. Al parecer, mi problema fue resuelto. Pero no: (

Al pulsar el botón de mi "descarga" en mi forma instance3, las otras instancias de formulario (2 y 1) se cuelga en la descarga de los contenidos (me da un tiempo de espera a veces) hasta que la forma-instance3 termina todas las descargas, etc. , para todas las otras formas. Así, a pesar de que sé que mi aplicación no es multi-hilo, las múltiples instancias de la misma forma están en conflicto (componente Inet, presumiblemente) y no se pueden descargar varios archivos a la vez. Inet y mi función de descarga se definen en el formulario.

¿Qué puedo hacer para solucionar esto? ¿Cómo puedo descargar varios archivos al mismo tiempo?

Muchas gracias

editar

Estoy tratando de utilizar la sugerencia de "wqw", pero que se me presentan algunos problemas: En el download_form, tengo un MSHFlexgrid, con 2 columnas: una con el URL y el otro con el destino del archivo. Estaba iteración a tiro todas las filas para descargar los archivos y guardarlos. Con el enfoque sugerido por "wqw", ¿cómo puedo distinguir cada descarga para que pueda guardarlo con el nombre correctamente indicado en la parrilla?

¿Fue útil?

Solución

¿Qué se usa para la descarga real http? Me gustaría probar simples Descargas asincrónicos y se olvidan de la MDIForm. Realmente!

Otros consejos

VB6, por sí solo, es de un solo subproceso. Así romper la descarga de diferentes formas, no le ayudará.

Lo que yo he usado en el pasado es el temporizador objeto en conjunción con una EXE . Este enfoque le dará una capacidad de localizar toda la lógica de descarga en un solo lugar, controlarlo como si controlar un objeto de regular y hacer que se ejecute en un EXE independiente, por tanto, de forma predeterminada por lo que es multi-hilo.

Así que la forma en que esto funciona es así:

  1. Se llama el método de descarga en el objeto ActiveX EXE
  2. En el método de descarga, una instancia del temporizador y la tengan inicio a casi inmediatamente.
  3. Usted sale del método de descarga, dando así el control de nuevo a la entidad que lo llamó.
  4. A continuación, se comunica de nuevo a la aplicación principal a través de eventos (por ejemplo DownloadProgress o DownloadComplete, etc ...)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top