下記コード簡潔化のためcv2.imshowは組み込まれていませんが、現在取り組んでいるコードの中で要なので、改善する方法は無いものでしょうか?ご教授お願いいたします。
バグ発生条件
・cv2.namedWindow()でwindowを呼び出し(以下cv2window)
・GetWindowText(GetForegroundWindow())でそのcv2windowのバーテキストが取得された状態では
・GetWindowText(GetForegroundWindow())が含まれたスレッドは機能しなくなります。
・(追記)cv2.imshowを経由する時にも止まってしまいました。
python
1import time 2import threading 3from win32gui import GetWindowText, GetForegroundWindow 4import cv2 5 6 7cv2.namedWindow("Window called by cv2. Please activate the command prompt.") 8for i in range(5): 9 print(5-i, "seconds left.", GetWindowText(GetForegroundWindow())) 10 time.sleep(1) 11 12def a(): 13 for i in range(3): 14 print("a") 15 time.sleep(1) 16 17def b(): 18 for i in range(3): 19 print(GetWindowText(GetForegroundWindow())) 20 time.sleep(1) 21 22t1 = threading.Thread(target=a) 23t2 = threading.Thread(target=b) 24 25if __name__ == '__main__': 26 t1.start() 27 t2.start()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。