关闭回调上的 Python 线程

Son*_*yen 6 python callback python-multithreading

我有 Thread,我想在它完成时更改一些标志。例如:

import threading 

def on_done():
    # do some printing or change some flags

def worker():
    # do some calculations

t = threading.Thread(target=worker, on_close=on_done)
t.start()
Run Code Online (Sandbox Code Playgroud)

但我无法找到这样的方法。任何想法我怎么能以某种方式管理它?工作函数在单独的文件中,所以它不知道关于标志。

提前谢谢

Rus*_*hal 6

一种选择是简单地包装工作函数:

def wrapped_worker():
    worker()
    on_done()
Run Code Online (Sandbox Code Playgroud)

然后,将目标设置为wrapped_worker

t = threading.Thread(target=wrapped_worker, on_close=on_done)
Run Code Online (Sandbox Code Playgroud)

有关更深入的示例,请参阅此答案