Autor
|
Tema: Form se bloquea en los bucles, solucion? (Leído 2,004 veces)
|
Littl3
Desconectado
Mensajes: 239
Tarde o temprano aparece el hombre
|
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?
|
|
|
En línea
|
|
|
|
Lambda
|
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
|
|
|
En línea
|
|
|
|
Littl3
Desconectado
Mensajes: 239
Tarde o temprano aparece el hombre
|
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
|
|
|
En línea
|
|
|
|
Lewert
Desconectado
Mensajes: 231
|
Si, siempre que puedas utiliza el DoEvents. Pss se podria decir que el DoEvents deja procesar otros eventos para que el programa no rebiente.
|
|
|
En línea
|
Crack the bytes, crack yourself
|
|
|
cobein
|
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.
|
|
|
En línea
|
|
|
|
SERBice
|
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.
|
|
|
En línea
|
|
|
|
|
|