进度条不会更新,直到100%

Bal*_*i C 1 c# progress-bar

我的winform上有一个进度条,它正在从一个名为from的回调方法中更新CopyFileEx.

问题是进度条在达到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;
}
Run Code Online (Sandbox Code Playgroud)

如果我表现出的价值观一个消息框totalBytesTransferred,并byteCount,并做计算自己正常工作(小数点后截断任何数字-因为它被强制转换为int),我得到的百分比.

出于某种原因虽然它在传递到我的进度条时不起作用,但直到它达到100%然后才能完成所有这一切.

有任何想法吗?

SLa*_*aks 9

你正在做整数(实际long)除法,它返回0.

你需要将一个操作数转换为double.