[Image-SIG] Tkinter, ImageTk and threading...

Klamer Schutte Schutte@fel.tno.nl
Fri, 23 Aug 2002 17:29:27 +0200


It is my understanding that Tkinter allows only one thread to
access the Tk things. This seems to be Tk/Tcl related.

A solution in multi-threaded applications is to make one thread 
which is only responsible for accessing tkinter. Communicate
to that thread using a Queue, and regular call Tk.update(), as
calling Tk.mainloop() will not read the Queue.

Klamer

"Kevin@Cazabon.com" wrote:
> 
> Has anyone else had problems using Tkinter to display images in
> multi-threaded applications?
> 
> I keep getting "Access Violation"s in TCL80.dll, and can't seem to nail down
> exactly what's happening.  I've put locks on everything that can be accessed
> by more than one thread, and made sure that I'm not changing things
> underneath of Tcl on the fly, but to no avail.
> 
> I believe the issue is related to images that are being shown on-screen in a
> Label widget.
> 
> I don't have specifics yet, just wondering if anyone knows of any
> threading-specific shortfalls of Tkinter/Tcl that I should be wary of.
> 
> Thanks!
> 
> Kevin Cazabon.
> 
> _______________________________________________
> Image-SIG maillist  -  Image-SIG@python.org
> http://mail.python.org/mailman/listinfo/image-sig