如何防止从 GSignal 中的第一个信号处理程序回调中调用更多信号处理程序?
例如,我为同一个信号“mysignal”注册了三个函数 - func1、func2 和 func3。如果先调用 func1,如何防止从 func1 调用 func2 和 func3?
这不应该成为永久性的。应该是运行时。即func1可以根据获取到的输入参数来决定func2和func3是否可以获取到回调。
最佳答案
g_signal_stop_emission_by_name()和g_signal_stop_emission()解决了这个问题。
从 func1 调用 g_signal_stop_emission_by_name() 可防止进一步传播到 func2 和 func3。
关于c - 防止 GSignal 传播到进一步注册的 GCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404380/