Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Programación De Hilos En Gambas
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Programación De Hilos En Gambas 
 
Hola,

Es posible programar hilos en gambas? he buscado información en la web, y no encuentro. Quiero ejecutar varias tareas a la vez, y no encuentro otra forma


saludos
 



 
última edición por MiguelVelandia el Domingo, 12 Septiembre 2010, 23:15; editado 1 vez 
MiguelVelandia - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programación De Hilos En Gambas 
 
No es posible. El intérprete de gambas se ejecuta en un único thread, por lo tanto no existen hilos como tal.

Dependiendo qué es lo que intentas hacer, hay algunos métodos (como los de la clase HttpClient .Get) que permiten descargar páginas web de manera asíncrona. Otro método ampliamente utilizado, por ejemplo en Python, es el uso de un "single-shot-timer" que supongo se podrá implementar en gambas.

Imagina por ejemplo que necesitas procesar gran cantidad de datos al inicio de la aplicación, como la carga de ficheros o similar. Si eso lo haces en el evento Form_Load(), la interfaz de tu aplicación no se mostrará hasta que finalice ese largo proceso... pareciendo que la aplicación se ha colgado o ha dejado de responder. Pues bien, usando un timer como disparador con un delay = 0 y colocando el método o función que realiza el trabajo pesado en el evento del Timer, hace que el evento se ponga en la cola de procesos del main_loop y se ejecute cuando lo demás (en este caso, mostrar el formulario) haya terminado.

Es un poco difícil de explicar, pero se usa muy a menudo en otros lenguajes y en gambas también debería funcionar. No sé si eso soluciona tu problema o parte de él, pero es lo que hay... o mejor dicho, lo que no hay

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programación De Hilos En Gambas 
 
Esto fue publicado cuando estaba apenas desarrollandose gambas3

no se ejecuta el formulario en un hilo?

si ejecuto el formulario, esta corriendo un unico hilo, pero si me doy cuenta, estos son ejemplos de hilos:

1) un projecto grafico es un form que es un hilo, todo proceso es un hilo hijo embebido dentro del programa, respondiendo no a mandatos, sino eventos!!!!!
2) cuando ejecutamos shell, el mando se traspasa a ese shell, pero en gambas3 si usamos exec alli ya es un hilo, y se manipula este como un proceso aparte en otro subrutina

estas son pistas que refutan la respuesta anterior..

Adicional dejan sin constestar la pregunta: y mi respuesta deja duda, ya que demuestro que si se puede! PERO COMO? deb e ser grafico el programa a juro para que se implementa hilos?
 



 
última edición por mckaygerhard el Lunes, 11 Noviembre 2013, 19:58; editado 1 vez 
mckaygerhard - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programación De Hilos En Gambas 
 
En realidad lo que dices no son hilos (o threads) que se puedan manejar fácilmente desde gambas (por ejemplo no existen las colas o los semáforos). Son procesos o subprocesos que no tienen que ver con gambas. gambas no es multitarea, se ejecuta en un solo proceso, aunque no discuto que se puedan lanzar procesos separados mediante Shell o Exec, pero pueden bloquear el proceso inicial del programa gambas si dicho proceso no ha finalizado antes de que lo haga el programa gambas, ya que todo se ejecuta dentro del mainloop de tu programa gambas.

Sin embargo, la nueva clase Task, implementa algo parecido a los threads, pero siguen sin ser realmente threads tal como se entienden en otros lenguajes. Yo lo llamaría más bien subprocesos.

En todo caso, seguro que Benoit puede darnos una respuesta mucho más fundamentada, así que esperemos a la respuesta a tu mensaje en la lista de correo.  

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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Programación De Hilos En Gambas 
 
Aporto aqui una experiencia que he tenido con un programa:

En el evento _show() del formulario, si añadia un codigo, el formulario no se mostraba hasta que se terminaba de ejecutar ese código. Pero si ese código lo metia en una subrutina, si se mostraba/actulizaba el formulario.

Por ejemplo:

Citar:
Public sub  Form_show()

shell "libreoffice"

end


Hasta que no terminaba de ejecutar libreoffice, no se mostraba o refrescaba el formulario.
Pero si hacia:

Citar:
Public sub  Form_show()

comando()

end

public sub comando()
shell "libreoffice"
end


Si se refrescaba el formulario, aun cuando el libreoffice estaba ejecutandose.

Explicación:
Supongo que lo que hace el interprete de gambas  (una instancia de una clase interprete) es crear otra instancia de la clase "interprete" para las subrutina comando(). y como no tiene valor de devolución, la instancia principal, puede seguir ejecutandose, mientras que la otra sigue su camino de interpretación.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Hilos En GAMBAS netking86 General 5 Lunes, 11 Noviembre 2013, 20:10 Ver último mensaje
mckaygerhard
No hay nuevos mensajes El Tema De Los Colorines De Los Hilos Visi... shordi Sobre Gambas-es 0 Miercoles, 05 Abril 2017, 18:12 Ver último mensaje
shordi
No hay nuevos mensajes Simulando La Programación Con Hilos O &qu... shordi Aplicaciones/Fragmentos de Código 6 Lunes, 29 May 2017, 11:13 Ver último mensaje
tercoIDE
No hay nuevos mensajes Programación Y Control De Puerto Usb Con ... v3ctor General 14 Viernes, 16 Junio 2017, 04:00 Ver último mensaje
razaAztk
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron