간단한 예제에서 tKinter가있는 Python GUI를 만들었습니다. 카운터를 증가시키는 간단한 루프를 트리거하는 버튼이 있습니다. 성공적으로 카운터를 스레딩하여 내 GUI가 멈추지 않게했지만 계산을 멈추는 데 문제가 있습니다. 여기 내 코드는 다음과 같습니다.tKinter 다중 스레딩 스레드 중지
# threading_example.py
import threading
from threading import Event
import time
from tkinter import Tk, Button
root = Tk()
class Control(object):
def __init__(self):
self.my_thread = None
self.stopThread = False
def just_wait(self):
while not self.stopThread:
for i in range(10000):
time.sleep(1)
print(i)
def button_callback(self):
self.my_thread = threading.Thread(target=self.just_wait)
self.my_thread.start()
def button_callbackStop(self):
self.stopThread = True
self.my_thread.join()
self.my_thread = None
control = Control()
button = Button(root, text='Run long thread.', command=control.button_callback)
button.pack()
button2 = Button(root, text='stop long thread.', command=control.button_callbackStop)
button2.pack()
root.mainloop()
안전하게 카운터 스톱을 증가시키고 정상적으로 닫을 수 있습니까?
어떻게해야합니까? – Vince