大神们进啊 , 关于线程和进度条同步的问题。。。 在网上找了很久想找出一个进度条同步线程的例子, 结果看到的都是一些无聊的人写个for循环,然后在里面执行i++ ,然后sleep之后来显示个进度条给人看. 感觉真的没有多大意义.这是最精简的结构了,这个如果你觉得没用说明你根本还是没理解。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这可能是你自己完全没有转过弯来!总预估时间是变动的,当前已经花费的时间也是变动的。当前花费时间就好像要“追赶”总预估花费时间似地。对于一个进度条而言,它的MaxValue是变动的,它的Value也是变动的。你自己好好动动你的脑筋吧! MaxValue是变动的,但是无法计算出当前的MaxValue,没有类似于的length ,也没有在任何循环之内 ,它的Value也是不知道的,不知道当前执行到了哪一步...跟你说清楚点这个程序,就是要加载一个大的文件,小到十几兆 ,大到数个GB 甚至几个GB ,用文件流读取到字节数组,然后执行一些复杂的算法操作, 举个例子比如说异或操作 ,以及进行一些乘积之类的可逆操作,经过复杂的计算之后,得到新的字节数组,用文件流写入到硬盘以一种自定义的压缩加密格式保存下来,写入是另外之后的事情,不在该线程内,这里不看. 其中的过程比较缓慢,响应时间过长,所以读取文件流到算法操作都写在一个线程里面 ,占用时间较多的是读取操作 ,如何在读取中获取当前读取了该文件的百分之多少?WinRAR 压缩的时候显示的进度条是同步的, 你认为这个程序如何用进度条同步出当前文件的读取进度? 谢谢你的好心解答! 不过确实不知道读取和处理了多少字节。 举个例子,比如说获取一个文件的sha1值。 //这里str_fileName是一个大文件的文件名含全路径 ,假定大概1.5G大小。 FileStream fs = new FileStream(str_fileName, FileMode.Open, FileAccess.Read); SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();byte[] byt = sha1.ComputeHash(fs);string sha1Value= BitConverter.ToString(byt).Replace("-", "");在这个过程中,我就基本上没法确定进程完成的进度。 但是这个过程需要时间来等待 。 有简单一点的方法吗? C/S架构访问局域网MSSQL服务器及优化问题。 NET网站建设,模块自动添加的标签如何弄? 菜鸟请教问题 求购一套棋牌游戏程序! 求软件reflector for .net~~~~ 菜鸟问C#关于数据库的问题 用csc编译C#代码的资源导入问题 ListView.Groups有没有办法折叠起来?(winform) 简单问题:如何定义一个程序级的字符串? 关于伪静态问题,高手来看看 通讯程式消息表结构问题
谢谢你的好心解答! 不过确实不知道读取和处理了多少字节。 举个例子,比如说获取一个文件的sha1值。
//这里str_fileName是一个大文件的文件名含全路径 ,假定大概1.5G大小。
FileStream fs = new FileStream(str_fileName, FileMode.Open, FileAccess.Read);
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] byt = sha1.ComputeHash(fs);
string sha1Value= BitConverter.ToString(byt).Replace("-", "");在这个过程中,我就基本上没法确定进程完成的进度。 但是这个过程需要时间来等待 。