import tkinter as tk
import tkinter.font
import threading
def sensor_4():
i = 0
while True:
i+=1
t4 = threading.Thread(target=sensor_4)
mainwindow = tk.Tk()
HEIGHT = 700
WIDTH = 800
canvas = tk.Canvas(mainwindow, height = HEIGHT, width = WIDTH)
canvas.pack()
frame = tk.Frame(mainwindow, bg='#08030D') #inside box
frame.place(relx=0, rely=0.1, relwidth = 0.95, relheight = 0.6)
start_sensor4=tk.Button(frame, text = "Press to Start 4", bg='#292230',fg='white',command = t4.start)
start_sensor4.place(relx=0, rely=0.24, relwidth = 0.2, relheight = 0.05)
mainwindow.mainloop()
В примере кода я могу запустить функцию потока, нажав кнопку в Tkinter GUI. Мне интересно, как я могу выйти из функции потока без необходимости возврата функции и перезапустить поток, нажав ту же кнопку или, возможно, отдельную кнопку. Я также получаю сообщение об ошибке, в котором говорится, что потоки можно запустить только один раз, если я нажму кнопку запуска.