teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

CallAfter について追記

2021/06/03 21:42

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -10,6 +10,8 @@
10
10
  他スレッド⇒メイン(GUI)スレッドへの簡単な通知方法は、
11
11
  wx.CallAfter に関数を渡す方法です。
12
12
 
13
+ ※ wx.CallAfter はスレッドセーフな関数で、内部で同期キュー相当の仕組みが使われてます。
14
+
13
15
  ```python
14
16
 
15
17
  from threading import Thread
@@ -45,4 +47,7 @@
45
47
 
46
48
  ----
47
49
  関連
48
- - [wxPython wiki - LongRunningTasks](https://wiki.wxpython.org/LongRunningTasks)
50
+ - [wxPython wiki - LongRunningTasks](https://wiki.wxpython.org/LongRunningTasks)
51
+ - [wxPython wiki - CallAfter](https://wiki.wxpython.org/CallAfter)
52
+ Thread/CallAfter のサンプルコード有。
53
+ > It is a safe way of requesting action of a Window from another thread.

1

文章の修正

2021/06/03 21:42

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  - 時間の掛かる処理は、バックグラウンド(別スレッド)で行います。
4
4
 
5
5
  バックグラウンドの処理が終わり次第、ウィンドウを閉じるのですが、
6
- この時、別スレッド側から直接 GUI を操作してはいけません。
6
+ この時、別スレッド側から直接 GUI を操作してはいけなくて、
7
7
  スレッドセーフな手段、同期キュー等の仕組みを通じて、
8
8
  メインスレッドのイベントループに通知します。
9
9