Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Littl3 en 11 Mayo 2008, 12:51 pm



Título: Form se bloquea en los bucles, solucion?
Publicado por: Littl3 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?


Título: Re: Form se bloquea en los bucles, solucion?
Publicado por: Lambda en 11 Mayo 2008, 13:35 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


Título: Re: Form se bloquea en los bucles, solucion?
Publicado por: Littl3 en 11 Mayo 2008, 14:08 pm
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


Título: Re: Form se bloquea en los bucles, solucion?
Publicado por: Lewert en 11 Mayo 2008, 16:43 pm
Si, siempre que puedas utiliza el DoEvents.
Pss se podria decir que el DoEvents deja procesar otros eventos para que el programa no rebiente.


Título: Re: Form se bloquea en los bucles, solucion?
Publicado por: cobein en 11 Mayo 2008, 19:15 pm
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.


Título: Re: Form se bloquea en los bucles, solucion?
Publicado por: SERBice en 16 Mayo 2008, 12:48 pm
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.