[EMAIL PROTECTED] a écrit : > Now when my socket thread detects an incoming message, I need my main > thread to interpret the message and react to it by updating the GUI. > IMO the best way to achieve this is by having my socket thread send a > custom event to my application's event loop for the main thread to > process. However, I'm at a total loss as far as creating custom events > is concerned. The WxWindows documentation isn't very helpful on this > either.
I think this is what you're looking for: # begin code import wx wxEVT_INVOKE = wx.NewEventType() class InvokeEvent(wx.PyEvent): def __init__(self, func, args, kwargs): wx.PyEvent.__init__(self) self.SetEventType(wxEVT_INVOKE) self.__func = func self.__args = args self.__kwargs = kwargs def invoke(self): self.__func(*self.__args, **self.__kwargs) class MyFrame(wx.Frame): def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) self.Connect(-1, -1, wxEVT_INVOKE, self.onInvoke) def onInvoke(self, evt): evt.invoke() def invokeLater(self, func, *args, **kwargs): self.GetEventHandler().AddPendingEvent(InvokeEvent(func, args, kwargs)) # end code This way, if frm is an instance of MyFrame, invoking frm.invokeLater(somecallable, arguments...) will invoke 'somecallable' with the specified arguments in the main GUI thread. I found this idiom somewhere on the Web and can't remember where. HTH -- http://mail.python.org/mailman/listinfo/python-list