Cla*_*diu 5 python multithreading twisted callback
Deferreds是在Twisted中进行异步处理的好方法.但是,顾名思义,它们用于延迟计算,它只运行和终止一次,触发一次回调.如果我有一个重复的计算,如点击一个按钮怎么办?是否存在任何Deferred类似的对象可以反复触发,在触发时调用附加到它的所有回调?
我现在已经设置好了。对于我有限的用例,它可以满足我的需求。
class RepeatedDeferred:
def __init__(self):
self.callbacks = []
self.df = defer.Deferred()
def addCallback(self, callback):
self.callbacks.append(callback)
self.df.addCallback(callback)
def callback(self, res):
self.df.callback(res)
self.df = defer.Deferred()
for c in self.callbacks:
self.df.addCallback(c)
Run Code Online (Sandbox Code Playgroud)
有人告诉我这是否可怕。