功能
GObjectsignal_has_handler_pending
声明 [源代码]
gboolean
g_signal_has_handler_pending (
GObject* instance,
guint signal_id,
GQuark detail,
gboolean may_be_blocked
)
说明 [源代码]
返回是否有任何处理程序与给定信号 ID 及详细信息相连的 instance
。
如果 detail
为 0,则它仅匹配那些在未带有详细信息的情况下连接的处理程序。如果 detail
为非 0,则它将匹配在未带有详细信息并带有给定详细信息的情况下连接的处理程序。这与带有 detail
的信号如何传递到这些处理程序一致。
自 2.46 以来,它还检查是否安装了非默认类闭包,因为这基本上总是您希望的。
您可能希望使用它的一种情况是当信号的参数难以计算时。如果无论如何没有连接任何内容,类实现程序可以选择不发出信号,从而节省构建参数的成本。