回答編集履歴
2
answer
CHANGED
@@ -8,16 +8,16 @@
|
|
8
8
|
def sub_loop(que):
|
9
9
|
while True:
|
10
10
|
time.sleep(1)
|
11
|
-
msg = que.get() # 一個だけ突っ込んだ一個を取り出す(もしQUEが空なら、QUEが詰まるまで待機しますので注意です)
|
11
|
+
msg = que.get() # 一個だけ突っ込んだ一個を取り出す(もしQUEが空なら、QUEが詰まるまで待機しますので注意です。必要ならQueが空かの判定を挟んでください)
|
12
12
|
print("sub_loop",msg)
|
13
13
|
|
14
|
-
que = queue.Queue(1) #キューに一個だけデータを入れる
|
14
|
+
que = queue.Queue(1) #キューに一個だけデータを入れる箱を用意する
|
15
15
|
th = Thread(target=sub_loop,args=(que,),daemon=True)
|
16
16
|
th.start()
|
17
17
|
|
18
18
|
while True:
|
19
19
|
print("main")
|
20
|
-
que.put(time.time())
|
20
|
+
que.put(time.time()) # キューに1つだけデータを突っ込む
|
21
21
|
time.sleep(0.5)
|
22
22
|
|
23
23
|
```
|
1
answer
CHANGED
@@ -36,4 +36,11 @@
|
|
36
36
|
Pipe:本当にプロセス間通信用に作られた技術です。オブジェクトを共有するイメージと思います。Lockだとかいろいろ概念があってとっつきにくいですが、Queueよりいろいろできると思います。
|
37
37
|
|
38
38
|
どの組み合わせでも動くと思いますが、一番シンプルなサンプルを掲載しましたので、こんな感じでメインのループを走らせる前にサブループを別のプロセスかスレッドで回せばいいな、と捉えていただければと思います。
|
39
|
-
※GUIを使おうとすると、GUIだけでもう一つスレッドあった方が良いと思います。
|
39
|
+
※GUIを使おうとすると、GUIだけでもう一つスレッドあった方が良いと思います。
|
40
|
+
|
41
|
+
---
|
42
|
+
|
43
|
+
> もう1個の問題としてはTCP通信で得たデータをtkinterのメッセージボックスに表示させる
|
44
|
+
ために text= にどのような変数などを入れたらいいかが分かりません。
|
45
|
+
|
46
|
+
Tkのラベルは、[textvariable=str(表示したい変数)](http://hanairosoft.skr.jp/programming/tkinter-entry.html#item2)でいけそうです。いかがでしょうか?
|