python 线程的 "On Stop" 方法

An "On Stop" method for python Threads

我和一个朋友正在面临编程挑战,谁能制作出好的 VOS(虚拟操作系统),目前我的正在运行来自程序中线程的自定义程序,我目前正在使用 Tkinter,因此单独的线程有自己的拥有 self.master.mainloop()。我将所有线程都存储在一个列表中,但我想知道我是否可以在线程中调用一个函数,该函数将调用程序中的一个子例程,告诉它执行 self.master.destroy()。有什么办法吗?

我想要类似

的东西
class ToBeThread():
    def __init__(self):
        self.master = Tk()
        self.master.mainloop()
    def on_stop(self, reason):
        self.master.destroy()

然后在我的主课

 from threading import Thread
 thread = Thread(ToBeThread())
 thread.setDaemon(True)
 thread.on_stop += ToBeThread.on_stop # Similar to how it is done in c#
 thread.start()
 ...

 ...
 thread.stop() # This calls the functions related to the "on_stop"

我找到了一种方法来做到这一点,所以对于我所做的任何疑惑:

from threading import Thread

class MyThread(Thread):def __init__(self, method, delay=-1):
    Thread.__init__(self)
    self.method = method
    self._running = False
    self.delay = delay
    self.setDaemon(True)
def run(self):
    self._running = True
    while self._running == True:
        self.method()
        if self.delay != -1:
            time.sleep(self.delay)
def stop(self):
    self._running = False

这允许我通过初始化程序编写传递一个函数,它会 运行 它每隔 x 秒或尽可能多次,直到我做 thread.stop()