在程式中需要打開若干個第三方程式,不同的程式加載時長不同,想要加一個進度條讓用戶明確地看到還需要等待多長的時間。在加載程序中不知道還需要多長時間,所以processBar的最大值不知道,求大佬提供解決思路。
uj5u.com熱心網友回復:
1. 打開多少程式,MaxValue就設幾2. 雖然加載時間不知道,但是每個應用加載時間能比較出相對長短,多測幾次,每個應用設定一個權值,MaxValue = 權值相加。
uj5u.com熱心網友回復:
也就是如果只是加載一個程式的話權值是1,那和加載單個程式添加進度條,不知道等待時長,不好確定最大值是一樣的。在不同情況下程式加載時長也有很大差異。如果靠多測幾次,估計一個時長的話,這個最大值沒有意義。不知道是不是我理解錯了,麻煩再解答一下。謝謝啦。
uj5u.com熱心網友回復:
進度條不是計時器,它只是用來告訴用戶當前進度是多少,完全可以根據任務數來展示進度。方案1:所有程式權值都是1,MaxValue=https://bbs.csdn.net/topics/程式數量,Value=已經打開的程式數量(其實也是權值相加,不過大家都是1)。
方案2:所有程式權值不一樣,自己測結果。假設三個程式ABC打開時間分別要3秒,8秒,10秒;換一臺電腦,可能是10秒,30秒,40秒;絕對時間有長有短,但是完全可以假定同樣場景下,每個程式有自己的相對快慢,A一定比C慢。最終就可以給它們設定權值:3,8,10。MaxValue=https://bbs.csdn.net/topics/21,Value=已經打開的程式權值相加。當然這只是理想場景。但即使ABC實際打開時間是6秒,5秒,8秒,最終呈現的效果也足以欺騙用戶。如果實在轉不過這個彎,可以自己模擬兩遍看看。
如果你的目的是精確預測出每個程式的打開時間,那不可能做到。
uj5u.com熱心網友回復:
可以設定為第三方程式打開多少設定多少 maxValue值uj5u.com熱心網友回復:
讓我來翻譯下這位大哥的話,寫個假的進度條,打開程式是主執行緒,再開個執行緒 畫個進度條,慢慢加,判斷如果主執行緒沒完成(執行緒最多跑到99%)就讓它等待主執行緒完成然后顯示 100%進度條
uj5u.com熱心網友回復:
打開程式的時間受N種因素影響,不可能每次都一樣,所以想做一個真正的跟著時間走的進度條是不現實的,除非你的第三方程式有回傳值告訴你加載到哪一步了。如果你想要進度值平滑的效果,可以用Marquee樣式的進度條,讓它一直滾動,然后提示用戶當前在加載哪個程式。
uj5u.com熱心網友回復:
好的,了解了,謝謝噠。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/94805.html
標籤:C#
