Buenas ya e notado algunas veces que con un programa creado en vb si lo haces trabajar mucho, por ejemplo que tenga que hacer muchos bucles o descargar archivos, el form se queda como bloqueado y se pone de color blanco, aunque la aplicacion sigue funcionando y cuando acaba todo vuelve a la normalidad pero es bastante molesto, sabeis si esto tiene algun truco o solucion?
Cita de: Littlehack en 11 Mayo 2008, 12:51 PM
Buenas ya e notado algunas veces que con un programa creado en vb si lo haces trabajar mucho, por ejemplo que tenga que hacer muchos bucles o descargar archivos, el form se queda como bloqueado y se pone de color blanco, aunque la aplicacion sigue funcionando y cuando acaba todo vuelve a la normalidad pero es bastante molesto, sabeis si esto tiene algun truco o solucion?
pon DoEvents en el bucle
o sea
for i = 1 to 20
hacercosas..
doevents
next i
Ostia! muy bueno gracias!! con los bucles funciona a la perfeccion, pero sigo teniendo problemas cuando descargo algo desde la aplicacion, se queda bloqueado el form, podria utilizar tambien el doevents? y que hace exactamente el doevents? salu2
Si, siempre que puedas utiliza el DoEvents.
Pss se podria decir que el DoEvents deja procesar otros eventos para que el programa no rebiente.
No se de que manera estas haciendo las descargas, una manera que no se cuelgue la aplicacion es utilizar cSocketMaster mas la clase que trae incluida que es para realizar descargas.
si haces la descarga con la api URLDownloadToFile te recomiendo que uses threads (createthread, closehandle, etc)
si usas winsock, inet control o algun control que requiera usar bucles, como t han dicho usas DoEvets, que lo que basicamente hace es hacer una pequeña pausa en el subproceso actual y darle el foco al programa, para que ejecute ortos subprocesos y despues retorne.