编码时遇到某种状态时,不能确定需要处理该状态采取的pipeline,或者后期需要扩展处理该状态的pipeline,因此不能直接调用固定的函数来处理这种状态,而是采用一种发送信号通知的程序状态的方法。
相当于一种监听器模式。事件源并不知道有哪些对象对当前事件或者状态感兴趣,需要对当前情况作出反应,无法考虑和确定到所有的反应,只能抛出这种状态,通知这个事件,剩下的交给信号或者消息接收对象来处理。
首先用g_signal_new创建一个信号,然后用g_signal_connect绑定该信号和处理该信号的方法,最后在需要执行处理函数时利用g_signal_emit发送信号。当g_signal_emit被调用发送signal的时候,绑定signal的方法就会被执行。
https://docs.gtk.org/gobject/func.signal_new.html
https://www.cnblogs.com/xiaomin/archive/2011/06/17/2084028.html
https://www.cnblogs.com/huan30/p/12812201.html
https://blog.csdn.net/fingding/article/details/6883368
http://m.blog.chinaunix.net/uid-20561862-id-2448447.html
http://garfileo.is-programmer.com/2011/4/4/gobject-signal-connection.25847.html
http://garfileo.is-programmer.com/2011/3/27/gobject-signal-extra-2.25621.html
https://blog.csdn.net/weixin_30734435/article/details/97635553
https://docs.gtk.org/gobject/func.signal_newv.html