我想要一个上下文管理器,我可以在其中放置一些要在单独的线程中执行的代码。
到目前为止,我找不到一种方法来实现我想要的,最好的选择是编写闭包并在单独的线程中执行闭包。
我想要这样的东西
# code runs on main thread
print("this is main thread")
with amazingcontextmanager:
# code to run in separate thread
print("this is not main thread")
Run Code Online (Sandbox Code Playgroud)
编辑:让我尝试再次问我的问题
@contextlib.contextmanager
def amazingcontextmanager():
try:
yield
finally:
print("thread done")
Run Code Online (Sandbox Code Playgroud)
我想yield在新线程中执行。基本上我放在 contextmanager 下的任何内容都应该在单独的线程中执行。