[pyar] multiprocessing y pygtk

Claudio Freire klaussfreire en gmail.com
Vie Mar 29 01:18:52 ART 2013


2013/3/29 Claudio Freire <klaussfreire en gmail.com>:
> def mirar_puertos():
>     while True:
>          #blah
>          en_gtk(lambda : gtk.hacerAlgo())
> mirador_de_puertos = threading.Thread(target=mirar_puertos)


Olvidé mencionar, que te conviene en los lambdas (o funciones internas
que uses), frizar los valores de las variables, de esta forma:

una_var_local = 0
while True:
   una_var_local += 1
   en_gtk(lambda una_var_local=una_var_local: gtk.hacerAlgoCon(una_var_local))

¿Por qué?

Porque para cuando el thread principal tome ese hacerAlgo, el lambda
referencia a la variable del otro thread (no al valor), y puede que
haya cambiado. Pasarlas por parámetro es una manera de "frizarlas"
bastante cómoda, que te puede ahorrar muchos dolores de cabeza.



More information about the pyar mailing list