首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QTcpSocket罗致任务管理器的句柄数不断增加

2014-04-26 
QTcpSocket导致任务管理器的句柄数不断增加我用QTcpSocket去连接服务器。如果服务器没有打开,那就用个定时

QTcpSocket导致任务管理器的句柄数不断增加
我用QTcpSocket去连接服务器。
如果服务器没有打开,那就用个定时器不断重连。
每次连接,都会

sock = new QTcpSocket(this);
sock->connectToHost("127.0.0.1", 1234);
connect(sock, SIGNAL(disconnected()), this, SLOT(disconnected()));
connect(sock, SIGNAL(error(QAbstractSocket::SocketError)), 
          this, SLOT(error(QAbstractSocket::SocketError)));


然后由于服务器没有开启,所以会收到error信号。
在error信号里面:
sock->close();
sock->deletelater();


但是打开任务管理器,会看到这个进程的句柄数在不断增加,明明调用了close方法和deletelater,还是这样。

这个socket的运行的线程不在主线程,是单独的线程。

有人知道是什么原因,应该怎么处理吗?谢谢了 Qt QTcpSocket
[解决办法]
可能是你定时器重连速度大于你应答超时删除速度,建议把定时重连设为一个合理的时间试试

热点排行