当前位置: 代码迷 >> QT开发 >> 使用Qtcpsocket中的flush()方法后导致release版本运行不稳定有关问题
  详细解决方案

使用Qtcpsocket中的flush()方法后导致release版本运行不稳定有关问题

热度:439   发布时间:2016-04-25 02:59:48.0
使用Qtcpsocket中的flush()方法后导致release版本运行不稳定问题
如题,使用Qt做的客户端启动后有两个线程,一个是主线程,一个是发送心跳线程,两线程使用同一个全局的Socket;
Socket每次write()后使用flush()清空缓存使消息马上发送到服务端,否则debug版本会出现心跳不及时发送现象;
除此之外debug版本比较稳定。现在测试release版本时,发现客户端运行一段时间后(半个小时左右,不做任何操作,程序内部会每隔4秒向服务端发送一次心跳)就会出现runtime error,试过很多方法都没有效果,但是发现把每次write()完的flush()操作注释掉以后就比较稳定。请问flush()是否会导致程序不稳定?
------解决思路----------------------
flush不可能会让它不稳定的,这个你要绝对相信的.
 这里很有可能是你的线程不安全引起的,,Socket貌似不能跨线程使用的吧.
  相关解决方案