Tkinter .after po zamrożeniu okna?

Mam prostego klienta czatu, z którym próbowałem pracowaćTkinter jako interfejs. Mój problem polega na tym, że podczas uruchamianiamainloop z.after dla wejścia / wyjścia czatu okno zamarza i blokuje się, dopóki nie otrzyma innej wiadomości.

class Client(Frame):

    def __init__(self, **kwargs):
        Frame.__init__(self, Tk())
        self.pack()

        self.lb = Listbox(self, width=100, height=30)
        self.lb.pack()

        self.show_data = self.lb.after(1000, self.chat_handle)

        self.entry = Entry(self)
        self.entry.bind('<Return>', self.input_handle)
        self.entry.pack(side=BOTTOM, fill=X)

    def input_handle(self, event):
        msg = self.entry.get()
        self.entry.delete(0, 'end')
        new_msg = 'privmsg %s :' % self.channel + msg + '\r\n'
        self.client.sendall(new_msg)
        self.lb.insert(END, self.nick + ' | ' + msg)

    def chat_handle(self):
        try:
            self.data = self.client.recvfrom(1024)
        except socket.error:
            self.lb.insert(END, "Bad Connection!")
            return
        if self.data and len(self.data[0]) > 0:
            self.lb.insert(END, self.data[0])
        elif self.data and len(self.data[0]) == 0:
            self.lb.insert(END, "Connection Dropped!")
            return
        self.show_data = self.lb.after(1000, self.chat_handle)

Ten blok kodu jest skrócony, ale pokazuje części, których dotyczy ponowne użycie. TheEntry widżet przestanie odpowiadać przez dłuższy czas.after jest wywoływany i nie będzie odpowiadać, dopóki wiadomość nie zostanie odebrana.

KiedyEntry widget ponownie reaguje, pole wprowadzania zawiera wszystkie dane, które zostały wpisane, ale nie zobaczę zmian podczas „zamrożonego” czasu. To samo dotyczyListbox widżet.

Gdyby ktokolwiek mógł rzucić nieco światła na to, dlaczego tak jest lub wskazać, czy brakuje mi tutaj metody, byłoby to bardzo mile widziane.

EDYCJA: po kilku dalszych badaniach, wygląda jaksocket dane blokują się, gdy w tym czasie jego wywołanie i okno zostają zamrożone.

questionAnswers(2)

yourAnswerToTheQuestion