マルチスレッド実行のテスト
IronPythonでのマルチスレッド実行方法をテストする。GUI画面を起動するときのイベントループを別スレッドで実行するには、どうすればよいか?テストコードを以下のように書く。2つの画面を立ち上げただけだが...。
Single Threaded Apartment (STA) threadというので動かす。現時点ではこれ以上わからず。引き続き調査する。
import clr clr.AddReference('System.Windows.Forms') from System.Windows.Forms import Application, Form from System.Threading import ( ApartmentState, Thread, ThreadStart ) def StartEventLoop(): f = Form() f.Text = 'A Windows Forms Form' f.Show() Application.Run(f) def StartEventLoop2(): f = Form() f.Text = 'A Windows Forms Form2' f.Show() Application.Run(f) thread = Thread(ThreadStart(StartEventLoop)) thread.SetApartmentState(ApartmentState.STA) thread.Start() StartEventLoop2()