Hilos En GAMBAS


Objetivo: 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

Objetivo: 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
Objetivo: Re: Hilos En GAMBAS
jsbsan escribió: [Ver mensaje]
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

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

Perfil MP  
Objetivo: Re: Hilos En GAMBAS
jguardon escribió: [Ver mensaje]
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!

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?

Perfil MP  

Página 1 de 1


  
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

   

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