Работа с потоками, открытие и закрытие потока

Всем здравствуйте, коллеги! Я имею функцию, которая при нажатии на кнопку открывает мне поток для выполнения функций параллельно с интерфейсом и меняет изображение, текст и команду кнопки. Если я нажму на изменённую кнопку, открытый поток должен моментально быть убит, а кнопка смениться на исходную. Пробовал кучу вариантов, но так и не смок разобраться.

Моя функция:
def change_button_state(self):
image_scan_button = customtkinter.CTkImage(
Image.open(“D:/IT/NetworkScanner/resources/play_white_button_icon_22785.png”), size=(30, 30))
image_stop_button = customtkinter.CTkImage(Image.open(“D:/IT/NetworkScanner/resources/Stop-red_37107.png”),
size=(30, 30))

    def stop_scan():
        self.quit()
        self.radiobutton_frame_button.configure(text="Cканировать", image=image_scan_button, fg_color='#217346',
                                                state="normal", command=self.change_button_state)
        self.progressbar_1.set(100)

    self.progressbar_1.set(0)
    self.radiobutton_frame_button.configure(text="Подождите...", image=image_stop_button, state="normal",
                                            command=stop_scan)

    def scan_ports_and_update():
        self.scan_ports()
        self.update_table()
        self.start_scan_event()

        if self.thread.daemon == True:
            self.radiobutton_frame_button.configure(text="Cканировать", image=image_scan_button, fg_color='#217346',
                                                    state="normal", command=self.change_button_state)
            self.progressbar_1.set(100)

    self.thread = threading.Thread(target=scan_ports_and_update)
    self.thread.daemon = True
    self.thread.start()