1. C/S架构系统中,QT的radiobutton经常出现死循环, 导致此问题的源头是 服务器和客户端通信时间差产生的问题。
例如,在客户端有两个 radiobutton, a 和b
step A: 客户端--》服务器(客户端点击a响应,向服务器索取数据)
step B: 服务器---》客户端 (将客户端界面设置为 点击a后对应的数据,此时会将radiobutton a设置为选中状态,因为要与服务器发送的数据对应起来, 此数据为服务器保存发送过来的)
上述过程是正常的过程,实际应用中,如果点击a后,立即点击b,
即上述过程中,插入一个 step A1, 过程变为
step A --> step A1 --> step B --> step B1
step A --> step A1 的时间差和 step A1 --> step B正好一致,则客户端会出现死循环此时,如果 前两个步骤的时间差和
即: 客户端会在 a 何必b 之间循环点击
解决方法:
在客户端接收到服务器送来的 点击 a后的相应数据后, 此时判断客户端是否还是a的选中状态,如果不是,则此包数据无效,不再设置。
PS:
客户端的一个界面中,如果控件过多时,客户端的一个操作会向服务器索要数据,此时如果系统比较慢,服务器反馈回来的响应数据包回来时,客户端的状态已经变了,这时,此包数据已经与客户端产生了冲突,此时就需要将此包数据丢弃,并给出提示信息