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
Hilos En GAMBAS
Objetivo: Re: Hilos En GAMBAS
última edición por jsbsan el Jueves, 25 Octobre 2012, 18:54; editado 1 vez
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
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
Objetivo: Re: Hilos En GAMBAS
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
jsbsan escribió: [Ver mensaje]
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
Objetivo: 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
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
Objetivo: 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?
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?
Página 1 de 1
No puede crear mensajesNo 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
Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.
Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo
Página generada en:: 0.3975s (PHP: -79% SQL: 179%)
Consultas SQL: 44 - Debug off - GZIP Activado