6e18ca6cf4
wxMutexGuiLocker and wxThread_IsMain to assist with dealing with GUI access from non-GUI threads. wxPyOnDemandOutputWindow is now thread safe if non-GUI threads use print, sys.stdout.write, etc. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
53 lines
875 B
Python
53 lines
875 B
Python
from time import sleep
|
|
from threading import Thread
|
|
|
|
def test_a_window():
|
|
print "starting window thread"
|
|
|
|
from wxPython.wx import * # <-- the wxWin DLL is not loaded until here
|
|
|
|
app = wxPySimpleApp(1)
|
|
frame = wxFrame(None, -1, "Hello", size=(400,200))
|
|
frame.Show(true)
|
|
EVT_SIZE(frame, OnFrameSize)
|
|
app.MainLoop()
|
|
print "finishing window thread"
|
|
|
|
def OnFrameSize(evt):
|
|
print evt.GetSize()
|
|
|
|
|
|
|
|
keep_going = 1
|
|
def counter():
|
|
print "starting counter thread"
|
|
count = 0
|
|
while keep_going:
|
|
sleep(1)
|
|
count += 1
|
|
print count
|
|
print "finishing counter thread"
|
|
|
|
def main():
|
|
print "main startup"
|
|
|
|
ct = Thread(target=counter)
|
|
wt = Thread(target=test_a_window)
|
|
|
|
ct.start()
|
|
wt.start()
|
|
wt.join()
|
|
|
|
global keep_going
|
|
keep_going = 0
|
|
|
|
ct.join()
|
|
|
|
print "main finished"
|
|
|
|
main()
|
|
|
|
|
|
|
|
|