我在使用BackgroundWorker进行读文件的时候,有一个进度条,但是每每进度条到80%左右的时候,结果已经出来,然后进度条才飘到100%
以下是我进行计算进度的一段代码,帮忙看看那里有问题? FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
int bufferSize = 131072; // 缓冲区大小
byte[] buff = new byte[bufferSize];
long offset = 0;
int length = 0;
double progress = 0;
double blockpro = fs.Length / bufferSize;
while (offset < fs.Length)
{
threadWorker0.ReportProgress((int)progress);
//读文件操作
offset += bufferSize;
progress += 100 / blockpro;
}之前用的方法是 progress = (int)offset/fs.Length*100;但是也是这样的情况,求解啊!
以下是我进行计算进度的一段代码,帮忙看看那里有问题? FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
int bufferSize = 131072; // 缓冲区大小
byte[] buff = new byte[bufferSize];
long offset = 0;
int length = 0;
double progress = 0;
double blockpro = fs.Length / bufferSize;
while (offset < fs.Length)
{
threadWorker0.ReportProgress((int)progress);
//读文件操作
offset += bufferSize;
progress += 100 / blockpro;
}之前用的方法是 progress = (int)offset/fs.Length*100;但是也是这样的情况,求解啊!
int b = 1024;
double c = 100 / (a / b);等于多少呢?这是一个计算机基本常识题。遇到这种问题,你应该写为:long a = 10000;
int b = 1024;
double c = 100 / ((double)a / b);