我有一個應用程序,我在塊上傳文件。我的前端是WPF,我有一個進度條來顯示文件上傳進度(上傳由單獨的線程完成,並且進度條處於上載開始時由子線程調用的單獨表單中)。WPF進度條不顯示正確的進度
我發現文件中的塊的總數來設置進度條的最大屬性。
現在,每塊載我以1
遞增進度條的價值,但讓我吃驚,進度條開始增加,但從來沒有完成(即停止顯示幾個街區後,進度)。
這裏是負責上傳文件線程代碼:
System.Threading.Thread thread = new Thread( new ThreadStart( delegate() { // show progress bar - Progress is the name of window containing progress bar Progress win = new Progress(); win.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen; win.Show(); // find number of blocks long BlockSize = 4096; FileInfo fileInf = new FileInfo(filename); long FileSize = fileInf.Length; long NumBlocks = FileSize/BlockSize; //set the min and max for progress bar win.Dispatcher.Invoke( new Action( delegate() { win.progressBar1.Minimum = 0; win.progressBar1.Maximum = NumBlocks; } ), System.Windows.Threading.DispatcherPriority.Render); //upload file while (true) { // code to upload the file win.Dispatcher.Invoke( new Action( delegate() { win.progressBar1.Value += 1; } ), System.Windows.Threading.DispatcherPriority.Render); } }
有人可以幫我分析一下,爲什麼會出現這種情況。
謝謝。
你期望的人來調試你的代碼,而不必*該代碼的任何*? – 2011-04-23 01:23:48
我很抱歉,從下次開始請記住,謝謝 – Jake 2011-04-23 01:26:40
您可以編輯您的問題並添加代碼。你應該這樣做。 – 2011-04-23 01:27:42