Re: [wxPython-users] Problems in using wxPython in a multithreaded context‏

Robin Dunn robin at alldunn.com
Mon Oct 22 09:20:11 PDT 2007


[Please set your mail client to use word-wrap at a reasonable width.]

mec2paris paris wrote:
> For my C application, I use many interpreters (withh the fonction Py_NewInterpreter()). For my needs, I create many GUI with wxPython and I have problems. Here is My C Code:
>  
> {
>     PyEval_InitThreads();
>     Py_Initialize();
> 
> 
> 
>     PyImport_ImportModule("myModule");//it creates a wxApp object and a GUI (mainloop)
>     ......
>  
>  
>     Py_NewInterpreter();
>     PyImport_ImportModule("anotherModule");//it should create a new wxApp and a new GUI (with Mainloop)
> 
> 
> 
>     .....
> }
>  
> Unfortunately this code does not work. In fact, My C application which use many interpreters is seen by wxPython as a single application, and as wxPython is thread safe, it is not possible to create a second App. 
> 
> 
> 
> I have to use many interpreters to separate variables and to avoid links between modules. 
>  
> What could I do to create many GUI in different interpreters (each GUI have to be in a separate environment)???
> 

Why do they need to be separate?  Why couldn't you have a single wx.App 
and MainLoop (perhaps running in the C++ code) and then let your Python 
snippets create their frames to be run in that App and thread?  Since 
GUIs use event dispatching and spend most of their time waiting for an 
event, there usually isn't much of a need for different parts of the UI 
to be running in different threads.

On the other hand if you really do need the separate GUIs to be in 
separate parallel environments, then one approach you may want to 
consider is to use separate processes.


-- 
Robin Dunn
Software Craftsman
http://wxPython.org  Java give you jitters?  Relax with wxPython!





More information about the wxpython-users mailing list