Added wxWakeUpMainThread, wxMutexGuiEnter, wxMutexGuiLeave,
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
This commit is contained in:
52
wxPython/tests/alternateThread.py
Normal file
52
wxPython/tests/alternateThread.py
Normal file
@@ -0,0 +1,52 @@
|
||||
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()
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user