2014-10-10 63 views
0

每當我嘗試加載大文件時,我的程序在加載文件之前不會顯示任何內容,然後打印「加載成功」,但是我希望它打印出每0.500ms加載多少個百分比(它在C++中)我怎麼能得到多少文件被加載將其轉換爲百分比?加載文件的進度條

+0

這取決於你正在加載什麼類型的文件以及你在做什麼。如果它是一個CSV,很容易。如果它是一個PSD,即使Photoshop也不會給出準確的加載估計。 – ceejayoz 2014-10-10 19:00:27

+0

代碼示例會很有幫助。 – sjdowling 2014-10-10 19:01:26

+0

「加載」是什麼意思?您是否手動將字節讀入緩衝區?然後需要進一步處理,直到您考慮加載完成? – 5gon12eder 2014-10-10 19:15:34

回答

1

您將需要獲取文件中的總字節數或行數。這將是計算百分比時的分母。

如果使用文件大小,則可以使用文件讀取位置計算百分比。

推薦的算法是使用至少兩個線程。
一個線程是GUI線程。
另一個線程是工作線程。工作線程將在文件中讀取。

有些人認爲工作線程應該將其進程發佈到全局變量,並且GUI線程應該輪詢該變量。

其他人認爲工作線程應該定期或以其他間隔將消息發佈到GUI線程。

選擇是你的。