tkinter, threads and asyncore together

Josiah Carlson jcarlson at nospam.uci.edu
Wed Feb 11 15:46:45 EST 2004


george.trojan at noaa.gov wrote:

> My application consists of Tkinter GUI that has to communicate with a
> remote
> server. The communication is bi-directional: the GUI responds to remote
> requests and user actions uch as pressing a button) should send messages
> 
> to the server. I want to have the network interface implemented as a
> separate
> thread, as it may take a while to proccess incoming messages. My initial
> approach is the following
> 
>  ------   Queue   --------------------
> |      | <------ |      asyncore      |        socket
> | GUI  |    ?    |dispatcher_with_send| <------------------>  server
> |      | ------> |                    |
>  ------           --------------------
> 
> My question is how to communicate with asyncore (to send a message, or
> end the thread)? I started with creating an additional dispatcher class
> using unix domain socket, but is seems wrong, why use sockets within the
> same process? I might try file_dispatcher around a pipe, but maybe I
> should use different design altogether.
> 
> George
> 

#to control asyncore
while 1:
     asyncore.loop(.1)
     if not fromgui.empty():
         #handle messages from GUI

Another option is to just have one thread, with the mainloop of Tkinter 
do a single asyncore.loop(0) call every .01 seconds or so.  In wxPython 
I'd just use a wxTimer, I don't know if Tkinter has an equivalent.

  - Josiah



More information about the Python-list mailing list