我的winform上有一個進度條,它是從CopyFileEx
調用的回調方法更新的。進度條不會更新,直到它是100%
問題是進度條不會更新,直到它達到100%。
進度條百分比是從後臺工作人員更新的,它基於複製的字節量與所有文件的總字節數之比。
我的代碼來計算的字節數是(我不認爲這裏有任何問題)
CopyFileCallbackAction myCallback(FileInfo source, FileInfo destination, object state, long totalFileSize, long totalBytesTransferred)
{
double dProgress = (totalBytesTransferred/byteCount) * 100.0;
backupWorker.ReportProgress((int)dProgress);
return CopyFileCallbackAction.Continue;
}
如果我表現出與totalBytesTransferred
和byteCount
值的消息框,並執行計算我自己它工作正常(截斷小數點後的任何數字 - 因爲它被投到int
),我得到的百分比。
由於某些原因,它傳遞到我的進度條時不起作用,直到它爲100%,然後它在一起完成。
任何想法?
您是否處理了ProgressChanged事件?在Progress改變的事件中,您需要設置UI進度 – Tilak
您是否已將'WorkerReportsProgress'設置爲true?是阻塞UI線程的東西,還是隻是沒有更新?你在'ProgressChanged'處理程序中遇到異常嗎? – Servy
是的,我已經使用'WorkerReportsProgress = true'設置了事件,爲了清晰起見,我沒有包括這些。 –