回答編集履歴

2

EOFErrorに対処した

2020/10/08 06:36

投稿

YakumoSaki
YakumoSaki

スコア2027

test CHANGED
@@ -46,7 +46,7 @@
46
46
 
47
47
 
48
48
 
49
- StopRequest = False;
49
+ StopRequest = False
50
50
 
51
51
 
52
52
 
@@ -88,13 +88,21 @@
88
88
 
89
89
  #global msg #strはグローバル宣言なくても使える
90
90
 
91
- msg = input("")
91
+ try:
92
92
 
93
+ msg = input("")
94
+
93
- print(msg + ' 入力された内容')
95
+ print(msg + ' 入力された内容')
96
+
97
+ except EOFError:
98
+
99
+ # メインスレッドと共に停止される際に、WindowsではEOFErrorが発生するので
100
+
101
+ # 発生したら停止と見なす。(しかし、スレッドは強制停止されるのでこの行は実行されない)
102
+
103
+ print("Thread inputmsg Stopped")
94
104
 
95
105
 
96
-
97
- print("Thread inputmsg Stopped")
98
106
 
99
107
 
100
108
 

1

念の為 sys.exit() を追加

2020/10/08 06:36

投稿

YakumoSaki
YakumoSaki

スコア2027

test CHANGED
@@ -33,6 +33,8 @@
33
33
 
34
34
 
35
35
  ```
36
+
37
+ import sys
36
38
 
37
39
  import time
38
40
 
@@ -92,7 +94,7 @@
92
94
 
93
95
 
94
96
 
95
- print("Thread inputmsg Stopped") # ここにはCTRL+C -> ENTER と押さない限り来ない
97
+ print("Thread inputmsg Stopped")
96
98
 
97
99
 
98
100
 
@@ -134,4 +136,6 @@
134
136
 
135
137
  Thread_1.join() # 終了待ち
136
138
 
139
+ sys.exit()
140
+
137
141
  ```