C#进度条注意事项

这几天做了个删文件的进度显示,但是老是发现会剩几份文件删不掉,由于选择删除的文件数量不同而剩余文件的数量也不等,比如删1000就会剩余4、5份,删4884份就会剩余20多份,查了很久没发现问题,还以为我用的多线程有问题,不过今天突然灵光一闪,找到原因了。
我开了个timer来检测当进度走到100%时进度条窗体关闭,这没问题,问题出在了这里

this.progressBar1.Value = Convert.ToInt32(i / (this.m_FileNames.Length * 1.0) * 100)

Convert.ToInt32 这个函数是四舍五入的!比如i=995;this.m_FileNames.Length=1000;时,进度条直接从995开始就到100%了,窗体关闭了,还有4份文件没删除呢!!!

this.progressBar1.Value = (int)(i / (this.m_FileNames.Length * 1.0) * 100)

用上面这种不四舍五入的就OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值