进度条直到100%才会更新

本文关键字:更新 100% | 更新日期: 2023-09-27 17:49:55

我的winform上有一个进度条,它正在从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;
}

如果我显示一个带有totalBytesTransferredbyteCount值的消息框,并自己进行计算,它会很好地工作(截断小数点后的任何数字-因为它被转换为int),并且我得到百分比。

由于某些原因,当它被传递到我的进度条时,它不工作,直到它是100%,然后它完成了所有的工作。

任何想法?

进度条直到100%才会更新

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

您需要将一个操作数强制转换为double