• 4981阅读
  • 5回复

[提问]线程阻塞问题 [复制链接]

上一主题 下一主题
离线xiao_xiao_ca
 
只看楼主 倒序阅读 楼主  发表于: 2012-08-06
       界面中有个按钮1,点击它之后,首先会把它的背景换成另一幅图片,然后创建QTcpSocket去连接服务器,设置的超时是10秒,现在问题是:为什么每次点击按钮后,它的背景不是立刻换回来,而是先去连接服务器,如果服务器连接不上,就会等到10秒之后才把背景给换过来,出现这个的原因是线程阻塞了么?如果是,请问该怎么解决呢?
离线diyuanbo

只看该作者 1楼 发表于: 2012-08-06
换完背景图后,调用一下QCoreApplication::processEvents试试
离线jdwx

只看该作者 2楼 发表于: 2012-08-07
引用第1楼diyuanbo于2012-08-06 20:10发表的  :
换完背景图后,调用一下QCoreApplication::processEvents试试

这个办法最简单。最好开一个线程。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线xiao_xiao_ca
只看该作者 3楼 发表于: 2012-08-07
回 1楼(diyuanbo) 的帖子
谢谢,很好用,真的非常多谢
离线xiao_xiao_ca
只看该作者 4楼 发表于: 2012-08-07
回 2楼(jdwx) 的帖子
谢谢,第一个方法足够了,本来如果实在找不到方法也只好开线程了,但又觉得要做的事太小,开个线程不划算。。。
离线dbzhang800

只看该作者 5楼 发表于: 2012-08-07
Re:回 2楼(jdwx) 的帖子
引用第4楼xiao_xiao_ca于2012-08-07 15:52发表的 回 2楼(jdwx) 的帖子 :
谢谢,第一个方法足够了,本来如果实在找不到方法也只好开线程了,但又觉得要做的事太小,开个线程不划算。。。

QTcpSocket本身就是异步的吧,如果你使用了waitXXX类函数来故意制造自己不需要的阻塞效果,就更不划算了
快速回复
限100 字节
 
上一个 下一个