Re: Problema con Bucle leyendo de un Socket
Mario Carrion <[email protected]>
| Newsgroups | gmane.comp.gnome.mono.hispano |
|---|---|
| Message-ID | <1244050377.4288.4.camel@karmeta> |
On Wed, 2009-06-03 at 13:32 -0400, Mario Carrion wrote: > On Wed, 2009-06-03 at 14:05 -0300, Gastón Borysiuk wrote: > > Hola gente. > Hola > > > Muchachos a ver si me pueden dar una mano. Navegando por la web encontre > > un fragmento de código ejemplo para construir un cliente de IRC, medio > > pobre pero ejemplo al fin. > > > > Basicamente el ejemplo hace una conexión al servidor IRC y envia los > > datos de la conexión y todo lo que el server devuelve lo muestra en la > > consola. > > > > Bueno en base a esto arme una interfaz con Glade (Estoy trabajando con > > Mono en Linux, ArchLinux) Bien, arme la interfaz perfectamente, luego > > escribi todo el código en Emacs y luego lo compile a mano desde la > > consola. > > > > El problema es el siguiente. En la interfaz de glade tengo un par de > > controles, botones para iniciar la conexión y el funcionamiento del > > script, ademas tengo un TextView que deberia almacenar el buffer de los > > datos entrantes. Hasta ahí todo perfecto, la teoria es hermosa... > > PERO... cuando corro el programa y le doy conectar, inicia me muestra > > los datos iniciales de la conexión pero mientras que no ingresan datos > > el programa queda como tildado en el bucle de lectura de buffer. Ahora > > lo mas lindo es que cuando envio algo al canal de irc y entran datos por > > el buffer la aplicacion se descongela muestra los datos y otra vez se > > congela. > > > > Bueno, mi primer pensamiento es que en el bucle deberia poner que > > mientras se ejecuta el bucle y no entran datos haga las iteraciones del > > programa, como para que la aplicacion no se congele y que el bucle siga > > su funcionamiento normal. Evidentemente pensé mal. > > > > > > Alguien tiene alguna idea como para tirar y que yo pueda investigar?, no > > quiero una solución sino una orientación. > Para tener tu aplicación con una ventana responsiva necesitas utilizar > un thread para el socket, ese sera el que actualize los datos de la > ventana, con eso el thread de la ventana estará "vivo" y podrás hacer > manipulación de él. ¿Más información? Falto el enlace: http://www.mono-project.com/Responsive_Applications - Mario