소켓 연결에서 들어오는 메시지를 수신하는 하나의 함수에서 while 루프가 있습니다.Python에서 무한 루프 스레드 2 개
def listenToMidiStream():
recording = True
global TRACK_IS_PLAYING
thread = threading.Thread(target=loopIt)
thread.start()
while recording:
stream = CLIENT_SOCK.recv(1024)
message = json.loads(stream.decode())
print(message)
if message:
MIDI_OUT.send_message(message)
if message == [250]:
TRACK_IS_PLAYING = True
elif message == [252]:
TRACK_IS_PLAYING = False
이 함수가 처음 호출되면 클럭 신호를 보내는 스레드를 시작합니다. Boolean이 False로 설정되면 중지되어야합니다.
def loopIt():
global TRACK_IS_PLAYING
while TRACK_IS_PLAYING:
for i in range(0,8):
MIDI_OUT.send_message(clock)
time.sleep(interval)
이제 loopIt()
이 한 번 호출됩니다. [250] 메시지가 오면 기능을 호출하거나 TRACK_IS_PLAYING
을 변경할 수 없습니다. 나는 여러 가지 시도를했지만 올바른 방법으로 어떻게해야하는지 실제로 알 수 없습니다.
True로 설정 한 경우에만 메시지를 보낼 것인가? – dano
프로그램 상단에서 '거짓'으로 설정하십시오 – boortmans