Autor |
Mensaje |
chaskux
Marcos Sepulveda
Aprendiz
Registrado: Septiembre 2009
Mensajes: 70
Edad: 51 Ubicación: Chile, Santiago
|
[Solucionado] Ejecucion De Proceso Que No Bloquee El Formulario
Hola chicos,
Por asuntos de trabajo me he ausentado un tiempo de las lides de gambas nuestra herramienta de trabajo.
Ahora que en chile tenemos un fin de semana largo gracias a las fiestas patrias trabajare en la herramienta Sycnapsis que diseñe para crear copias de directorios ya que quedo un poco "chapucera" como dicen ustedes en españa.
Ahora a la pregunta.
Diseñe la aplicación para que al presionar el botón de comparación de directorios y determinar que hacer con cada archivo o directorio vaya mostrando el avance de la revisión gracias a la instrucción WAIT. Eso quedo cool ya que muestro una barra de progreso y el archivo en revisión.
el problema que se me presento fue que, cuando corrí el proceso para un directorio con una biblioteca gigante de Ebooks que me conseguí por ahí, con mas de 15mil libros y sus respectivos directorios y archivos asociados resultaron en mas de 45mil registros a revisar. y se quedo pegada la app sin poder hacer nada con ella.
Lo único que tengo claro es que cuando este corriendo el proceso debo preguntar por un flag/variable que me señale que quieren cancelarlo para abortar.
No tengo ninguna idea de como lograr lo anterior y que no quede bloqueada cuando el usuario se enfrente a una situación familiar.
Acepto ideas.
=================== ------
Telegram : @sepulvedamarcos
última edición por chaskux el Viernes, 22 Septiembre 2017, 16:38; editado 2 veces
|
#1 Viernes, 15 Septiembre 2017, 15:23 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
No es nada difícil: Si añades un retardo a wait, (el mínimo, creo es 0.001) das oportunidad a otros controles de ejecutar su evento.
Es decir, cada vez que se hace wait, se termina todo proceso pendiente en el bucle de eventos y ahí puedes cancelar el proceso que deseas terminar.
Como un ejemplo vale más que mil palabras, te he hecho un pequeño proyecto que lista un directorio de manera recursiva con una barra de progreso sobre el número de ficheros que contiene cada directorio y lo muestra en un TextArea. Pulsando el botón "Cancelar", finalizas la tarea a medias.
Descripción: |
|
Descargar |
Nombre del archivo: |
ListaFicheros-0.0.1.tar.gz |
Tamaño: |
11.75 KB |
Descargado: |
18 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ListaFicheros-0.0.1.tar.gz |
Tamaño: |
11.75 KB |
Descargado: |
18 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
ListaFicheros-0.0.1.tar.gz |
Tamaño: |
11.75 KB |
Descargado: |
18 veces |
=================== No podemos regresar
última edición por shordi el Viernes, 15 Septiembre 2017, 17:48; editado 1 vez
|
#2 Viernes, 15 Septiembre 2017, 17:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
Este es el código del Formulario:
=================== No podemos regresar
última edición por shordi el Viernes, 15 Septiembre 2017, 17:51; editado 1 vez
|
#3 Viernes, 15 Septiembre 2017, 17:50 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
=================== No podemos regresar
|
#4 Viernes, 15 Septiembre 2017, 17:52 |
|
|
chaskux
Marcos Sepulveda
Aprendiz
Registrado: Septiembre 2009
Mensajes: 70
Edad: 51 Ubicación: Chile, Santiago
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
No es nada difícil: Si añades un retardo a wait, (el mínimo, creo es 0.001) das oportunidad a otros controles de ejecutar su evento.
Es decir, cada vez que se hace wait, se termina todo proceso pendiente en el bucle de eventos y ahí puedes cancelar el proceso que deseas terminar.
Como un ejemplo vale más que mil palabras, te he hecho un pequeño proyecto que lista un directorio de manera recursiva con una barra de progreso sobre el número de ficheros que contiene cada directorio y lo muestra en un TextArea. Pulsando el botón "Cancelar", finalizas la tarea a medias.
Excelente.... llegando a casa lo pruebo.... puede ser que el wait que tengo este muy corto por que los botones de verdad es que no se pueden presionar....
Gracias
=================== ------
Telegram : @sepulvedamarcos
|
#5 Viernes, 15 Septiembre 2017, 18:09 |
|
|
chaskux
Marcos Sepulveda
Aprendiz
Registrado: Septiembre 2009
Mensajes: 70
Edad: 51 Ubicación: Chile, Santiago
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
buen trabajo... los tienes en que formato???... yo los tenfo en EPUB... con calibre los transformo a mobi cuando necesito leerlos... (estoy viendo la compra de un nook para leer directo en epub).
=================== ------
Telegram : @sepulvedamarcos
|
#6 Viernes, 15 Septiembre 2017, 18:10 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
=================== No podemos regresar
|
#7 Viernes, 15 Septiembre 2017, 18:37 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
Podes usar matrices de texto para poner los archivos que vas a revisar o sobre los que vas a actuar y luego controlas el proceso con el numero de avance. Te dejo un ejemplo.
Saludos.
Descripción: |
|
Descargar |
Nombre del archivo: |
cortar-for-next-0.0.1.tar.gz |
Tamaño: |
11.98 KB |
Descargado: |
24 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
cortar-for-next-0.0.1.tar.gz |
Tamaño: |
11.98 KB |
Descargado: |
24 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
cortar-for-next-0.0.1.tar.gz |
Tamaño: |
11.98 KB |
Descargado: |
24 veces |
|
#8 Viernes, 15 Septiembre 2017, 19:19 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
Uff, el ejemplo que subí es supero rudimentario comparado con el de Shordi, bueno espero sirva de algo.
Respecto a los formatos, si es un reader que no soporta epub no te lo compres. Sony, Kobo y unos cuantos mas lo soportan.
Saludos.
|
#9 Viernes, 15 Septiembre 2017, 19:24 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Ejecucion De Proceso Que No Bloquee El Formulario
Shordi usando recursividad ...más peligroso que un barbero con hipo!.
Saludos
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#10 Sabado, 16 Septiembre 2017, 08:39 |
|
|
|