我正在开发一个与服务器交互的应用程序。
启动时,它正在从数据库加载一些数据,当数据库大小很大时,应用程序在很长的循环中运行,假设我在db中有10个lac记录,循环将迭代10次lac。
经过一段时间(由用户设置)后,假设1秒钟,我的应用程序正在向不同线程的服务器发送心跳消息。
在正常情况下,它工作正常,但是当应用程序在长循环中运行时,服务器尚未收到心跳消息,尽管QTcpSocket::write()
返回的写入字节与我写的(成功)相同,但是{{ 1}}没有显示任何接收到的字节。
我用过
tcpDump
答案 0 :(得分:0)
尝试在循环中添加processEvents()
(假设每1000个循环或每100毫秒),以使您的应用程序保持响应。当然,如果你遇到这样的问题,这是一个糟糕设计的迹象。考虑重新设计应用程序以使用多个线程,即主线程和工作线程进行长时间操作(循环)。有关Qt上的线程支持的更多信息,请参见here。