2009-01-27 70 views
0

我正在開發一個應用程序,它從Internet服務器獲取大圖像,這是下載此圖像的最佳方式,而不凍結整個應用程序?我的意思是後臺下載。我曾想過在另一個線程下載它。獲取查詢結果的最佳方式

回答

0

是的,你需要產生另一個線程來進行網絡通信,然後當它完成讀取時,可以使用易失性布爾標誌來指示工作已完成並且主/應用程序線程可以執行數據並納入它。如果您想要顯示逐張顯示的圖像(如瀏覽器一樣),則數據可能是圖像的「部分」。

0

後臺線程可以正常工作,但要正確使用並不是必須的,Qt4使用QTcpSocket類在主線程中執行非阻塞I/O非常容易 - 基本上,您可以連接QTcpSocket對象的readReady()信號插入到您的程序的某個插槽中,並且在調用QTcpSocket時,您的插槽會讀取QTcpSocket中新提供的數據。例如,查看Qt examples目錄中的fortuneclient示例($ QTDIR/examples/network/fortuneclient)。

+0

我同意使用線程不是很安全。另一方面,readReady()可能仍然會「阻塞」應用程序(使其稍微有些遲鈍)。 – 2011-12-03 08:46:10