/ / Python threading на close callback [дублиране] - python, callback, python-мултитрейд

Python threading за близка обратна връзка [duplicate] - 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()

Но аз не можах да намеря метод като този. Някакви идеи как да го управлявам по някакъв начин? Работната функция е в сепаретен файл, така че не познава флаговете.

Thaks предварително

Отговори:

1 за отговор № 1

Една от опциите е просто да обгърнете работната функция:

def wrapped_worker():
worker()
on_done()

След това задайте целта на wrapped_worker:

t = threading.Thread(target=wrapped_worker, on_close=on_done)

виждам този отговор за по-задълбочен пример.