【发布时间】:2017-06-25 00:42:07
【问题描述】:
当我简单地使用“连接”时,我无法指定回调中的顺序将被调用。在默认值之前/之后连接 connect_before 和 connect_after 不符合我的目的。我想要 connect_first 和 connect_last 之类的东西,或者其他任何可以帮助我指定回调连接到信号的顺序的东西。
这样的?
something.connect_first('my-signal', callback1)
somethingelse.connect_last('my-signal', callback2)
【问题讨论】:
-
异步任务是异步的。如果您想订购它们,请等到其他一些完成或失败之后再启动它们。
-
你会如何处理调用
connect_last,然后在另一段代码中再次调用它的情况?只有一个处理程序可以放在最后。解决您的问题的一种方法是只与一个事件建立一个连接,并在该处理程序中按特定顺序执行几件事。 -
GObject 信号不是异步的:它们是完全同步的。控制流将阻塞直到
g_signal_emit()返回。