から呼び出されたコールバックメソッドから更新されている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;
}
との値を含むメッセージボックスを表示し、自分で計算を行うtotalBytesTransferred
とbyteCount
、正常に機能し(小数点以下の数値は切り捨てられます-にキャストされるためint
)、パーセンテージが取得されます。
何らかの理由で、プログレスバーに渡されたときに機能しませんが、100%になるまで、すべてが1つになります。
何か案は?