#プログラムの内容
1s毎にカウントアップとカウント数を表示すると同時にキーボードから入力があれば入力された内容を表示する
#問題点
Ctrl+Cでwhile分からbreakする際にエラーが発生するが、理由が理解できない。
エラーが発生しないように修正したい。
#環境
windows10 64bit
python
vscode
#エラー内容
Exception in thread Thread-2:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\threading.py", line 932, in _bootstrap_inner
self.run()
in inputmsg
msg = input("")
EOFError
Exception ignored in: <module 'threading' from 'C:\ProgramData\Anaconda3\lib\threading.py'>
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\threading.py", line 1388, in _shutdown
lock.acquire()
KeyboardInterrupt:
import time import threading num = 0 #1sカウントの関数定義 def num1(): while True: try: global num print("num = " + str(num)) num += 1 time.sleep(1) except KeyboardInterrupt: Thread_1.join() print('num1 END') break #キーボード入力の関数定義 def inputmsg(): while True: try: #global msg #strはグローバル宣言なくても使える msg = input("") print(msg + ' 入力された内容') except KeyboardInterrupt: Thread_2.join() print('inputmsg END') break #同時起動の準備 Thread_1 = threading.Thread(target=num1) Thread_2 = threading.Thread(target=inputmsg) #プログラムの同時起動 Thread_1.start() Thread_2.start()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/08 05:53
2020/10/08 06:37