スレッドとメッセージキュー
実行単位であるスレッドにはそれぞれメッセージキューが1本ずつある.各Windowはスレッドに関連付けられており,その自身が関連付けられているスレッドに送られたメッセージのみ処理することができる.
よって,以下のように__init__の中でウィンドウを作ってもrunの中のメッセージループでは一切メッセージを処理することができない.
import thread, threading class WindowThread(threading.Thread): def __init__(self): threading.Thread.__init__(self) print thread.get_ident() # スレッドA(呼び出し元スレッド) self.win = Window() def run(self): print thread.get_ident() # スレッドB self.win.PumpMessages() # メッセージループ