我正在开发一个从Internet服务器获取大图像的应用程序,这是下载此图像的最佳方式,而不冻结整个应用程序?我的意思是后台下载。我曾考虑过在另一个帖子中下载它。
答案 0 :(得分:0)
是的,您需要生成另一个线程来进行网络通信,然后当它完成它的读取时,您可以使用volatile布尔标志来指示工作已完成且主/应用程序线程可以执行数据并将其合并。如果您想要逐个显示图像(如浏览器那样),则数据可能是图像的“部分”。
答案 1 :(得分:0)
后台线程可以正常工作,但是正确而且通常不需要它很棘手... Qt4使用QTcpSocket类在主线程中非常容易地进行非阻塞I / O - 基本上你连接QTcpSocket对象的readReady()信号发送到您的程序的插槽,并让您的插槽在调用时从QTcpSocket读出新的可用数据。有关示例,请查看Qt示例目录中的fortuneclient示例($ QTDIR / examples / network / fortuneclient)。