|
Página 1 de 1
|
Autor |
Mensaje |
netking86
Técnico Programador
Registrado: Septiembre 2009
Mensajes: 159
Edad: 38 Ubicación: Málaga
|
Hilos En GAMBAS
Hola a todos
Bueno, os cuento mi problema. Mi programa (Open Media Manager) se conecta a internet cuando se inicia. El objeto de esto es comprobar si existe una nueva versión para ofrecer un mensaje informativo acerca de esto al usuario. El problema es que a veces tarda un poco (apenas son unos segundos, pero deja mala imagen abrir un programa y que tarde ese tiempo en iniciarse). Tenía pensado hacer un hilo que compruebe esto en segundo plano pues no es prioritario y no afecta al resto del programa. El problema es que nuncá programé con hilos y ni siquiera se si se puede hacer en gambas. He buscado en el foro y no encontré nada.
¿alguna idea?
Muchas gracias
=================== Proyecto Open Media Manager -> http://www.OpenMediaManager.com
|
#1 Jueves, 25 Octobre 2012, 18:42 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Hilos En GAMBAS
netking86:
Fabian, comento algo, de que en las versiones actuales, Benoit, esta implentando algo sobre hilos... mirate los change log de las ultimas versiones...
Se me ocurren varias formas de implementar lo que quieres, seguramente no muy elegantes... pero guardaria la estetica de tu aplicacion...
Seria usando socket,,, el programa servidor Open Media Manager, estaria escuchando a un cliente y la mision de este cliente seria conectar con la web y comprobar la existencia de otra version... luego este cliente, cuando hace su trabajo, informa al programa servidor del cambio. Si hay cambio, el servidor pondria un mensaje sobre la existencia de una nueva version....
Este programa "cliente" puede estar hecho en gambas, y empezaria su ejecucion con una orden SHELL O EXEC desde el servidor.
Saludos
última edición por jsbsan el Jueves, 25 Octobre 2012, 18:54; editado 1 vez
|
#2 Jueves, 25 Octobre 2012, 18:52 |
|
|
netking86
Técnico Programador
Registrado: Septiembre 2009
Mensajes: 159
Edad: 38 Ubicación: Málaga
|
Re: Hilos En GAMBAS
netking86:
Fabian, comento algo, de que en las versiones actuales, Benoit, esta implentando algo sobre hilos... mirate los change log de las ultimas versiones...
Se me ocurren varias formas de implementar lo que quieres, seguramente no muy elegantes... pero guardaria la estetica de tu aplicacion...
Seria usando socket,,, el programa servidor Open Media Manager, estaria escuchando a un cliente y la mision de este cliente seria conectar con la web y comprobar la existencia de otra version... luego este cliente, cuando hace su trabajo, informa al programa servidor del cambio. Si hay cambio, el servidor pondria un mensaje sobre la existencia de una nueva version....
Este programa "cliente" puede estar hecho en gambas, y empezaria su ejecucion con una orden SHELL O EXEC desde el servidor.
Saludos
Hola!!
La verdad es que lo tengo montado de un modo mucho más simple. El programa descarga de internet un archivo de texto alojado en la web del que lee información. No hace falta nada del estilo cliente/servidor ni cosas así. Sólo es un proceso que descarga un archivo pequeño. Quizá haya algo al estilo de DoEvents en BASIC que salve la situación sin demasiadas complicaciones
=================== Proyecto Open Media Manager -> http://www.OpenMediaManager.com
|
#3 Jueves, 25 Octobre 2012, 19:56 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Hilos En GAMBAS
Hasta ahora no existe la posibilidad de trabajar con hilos o multiproceso en gambas, aunque como dice Julio hace poco que leí algo sobre un componente nuevo "task" o algo así, que permitiría correr en paralelo algún otro proceso.
No obstante, creo que para lo que necesitas es simplemente usar un httpclient con la propiedad Async en True, que es como viene por defecto. Eso permite descargar datos de una web sin interrumpir el flujo del programa.
Mira el ejemplo #2 de este enlace para ver cómo hacerlo:
http://gambasdoc.org/help/comp/gb.net.curl/httpclient
Este método lo uso en un programa para la misma finalidad de comprobar la versión y todo va muy fluido, no se interrumpe main loop.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Jueves, 25 Octobre 2012, 20:05 |
|
|
netking86
Técnico Programador
Registrado: Septiembre 2009
Mensajes: 159
Edad: 38 Ubicación: Málaga
|
Re: Hilos En GAMBAS
Hasta ahora no existe la posibilidad de trabajar con hilos o multiproceso en gambas, aunque como dice Julio hace poco que leí algo sobre un componente nuevo "task" o algo así, que permitiría correr en paralelo algún otro proceso.
No obstante, creo que para lo que necesitas es simplemente usar un httpclient con la propiedad Async en True, que es como viene por defecto. Eso permite descargar datos de una web sin interrumpir el flujo del programa.
Mira el ejemplo #2 de este enlace para ver cómo hacerlo:
http://gambasdoc.org/help/comp/gb.net.curl/httpclient
Este método lo uso en un programa para la misma finalidad de comprobar la versión y todo va muy fluido, no se interrumpe main loop.
Saludos
Muchas gracias JGuardon, me viene perfecto.
Un saludo!
=================== Proyecto Open Media Manager -> http://www.OpenMediaManager.com
|
#5 Jueves, 25 Octobre 2012, 20:25 |
|
|
mckaygerhard
PICCORO Lenz McKAY
Programador
Registrado: Julio 2013
Mensajes: 120
Edad: 65 Ubicación:
|
Re: Hilos En GAMBAS
he investigado el tema mucho , y por lo visto no se puede, pero me confunde, porque cuando uno abre un formulario este es realmente una especie de hilo que responde a eventos, esto es porque mientras se ejecuta un evento el ciclo sigue (ver en la wiki instruccion wait)
en gambas 3 tenemos aparte de shell ahora process, y las llamadas a programas externos es a travez de procesos manejables (bueno mas bien una consola interna seria un ejemplo mas cercano a la realidad) aiunque no los manejamos con señales
no es un time algo similar en el formulario?
|
#6 Lunes, 11 Noviembre 2013, 20:10 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|