我正在开发一个从 Internet 服务器获取大图像的应用程序,这是下载这些图像的最佳方式,而不冻结整个应用程序?我的意思是后台下载。我已经考虑在另一个线程中下载它。
xgoan
问问题
158 次
2 回答
0
是的,您需要生成另一个线程来进行网络通信,然后当它完成读取时,您可以使用 volatile 布尔标志来指示工作已完成并且主/应用程序线程可以获取数据并合并它。如果您想逐块显示图像(就像浏览器一样),数据可能是图像的“一部分”。
于 2009-01-27T11:30:39.353 回答
0
后台线程可以工作,但要正确处理很棘手,而且通常不需要... Qt4 使得使用 QTcpSocket 类在主线程中执行非阻塞 I/O 变得非常容易——基本上你连接 QTcpSocket 对象的 readReady( ) 向您的程序的插槽发出信号,并让您的插槽在调用时从 QTcpSocket 读取新可用的数据。例如,查看 Qt 示例目录 ($QTDIR/examples/network/fortuneclient) 中的 fortuneclient 示例。
于 2010-04-25T05:28:34.307 回答