[wxPython-users] calling wxPython functions from different thread

Phil Mayes phil at philmayes.com
Mon Feb 11 09:39:53 PST 2008


At 07:39 AM 2/11/2008, you wrote:
>hello again,
>
>I was trying to make my application multithreaded, I put my calculations 
>in different Thread, then I gave this Thread name of the function to call 
>when it finish.
>This function updates ListCtrl.
>So it works this way:
>
>- ListCtrl has old values
>- I want to add new element, it requires calculations
>- I call different thread and give it reference to Update() function
>- I do different things while thread does its calculations
>- thread finishes calculations and calls Update()
>- Update() regenerates data in ListCtrl
>
>The problem is, that my GUI is unstable after last step. ListCtrl is not 
>updated until I use scroll, then it updates, but I can't click anything 
>else in the wxPython window.
>
>Can I use threads this way when developing wxPython application?
>
>If not, how can I update ListCtrl when another Thread finish its job?

You can't update the user interface from any thread except the main 
one.  Use wx.CallAfter() to call your function.

Phil





More information about the wxpython-users mailing list