2010-08-04 47 views
0

如何防止從GSignal中的第一個信號處理程序回調中調用更多信號處理程序?防止GSignal傳播進一步註冊GCallbacks

例如,我爲相同的信號「mysignal」註冊了三個函數 - func1,func2和func3。如果首先調用func1,如何防止從func1調用func2和func3?

這不應該是永久性的。它應該是運行時。即func1可以決定func2和func3是否可以根據獲取的輸入參數獲取回調。

回答

1

g_signal_stop_emission_by_name()和g_signal_stop_emission()解決了這個問題。

從func1調用g_signal_stop_emission_by_name()可防止進一步傳播到func2和func3。