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