请问C#中有关时间间隔,和进度条的使用 这个应该不太可能十分准确的,我认为是估计的,你看windows的安装程序的时间估计就很不准 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 谢谢。对于第一个问题,我还不知道应该怎么做。DateTime类支持直接计算两个时间点的间隔吗?对于第二个问题,我的意思是不知道应该怎么设置。我现在的做法非常“傻”:(。先读一遍文件计算出总的行数,赋给Maximum。然后每次读一行,就将Value加一。这样看上去是对的,但是显然效率变低了。而我的程序希望效率高一些。 问题一:建议用线程,可能更好处理些;问题二:你应该得到文件的大小,用FileInfo取获得,你每次能读多少,除一下,看看大概读多少次,求出于Maximum的比率,从而进行定时刷新。 问题一:我还是一个C#新手,不明白你的说法:(问题二:FileInfo中的Length属性是long型的,ProgressBar的Maximum是int型,这样如果进行强制转换,就会使得数据不准确。再用ReadLine方法读取出一行文本,计算其字节数,加到Value上时,有可能超出上面的Maximum,抛出异常。有什么办法变通一下? 问题一:因为你是在拷文件,当然希望自己主动去刷新进度条,而不是在Timer中被动去刷新,因为你在Timer的Tick事件中去判断copy的数据大小,是很麻烦的;而在线程中,copy文件是一个循环,没拷完一定buffer的数据,去刷新进度条,是很方便的。问题二:我没有让你直接去把FileInfo中的Length属性转换成ProgressBar的Maximum,只是用Length/Maximum得到商,那么每次复制这么多buffer的数据,就去刷新进度条,实际就是算出length和Maximum的一个比值。 谢谢。第一个问题是我自己弄复杂了。其实只要在开始处理前,先记录下当时的时间。然后等处理结束时,在记录下当时的时间。这样取出这两次时间的Minute,Second等属性,再直接求差,就可以了。关于第二个问题。我还是不明白你的做法(恕我愚钝:()。Maximum的初值是多少?因为在更新Value值时,必须保证其值在Minimum和Maximum之间的。 我的意思是把ProgressBar的Maximum的值固定,例如设为100,每次拷文件的时候,得到文件的大小,例如10M,很容易知道文件大小与ProgressBar的Maximum的比率,例如这个,会很清楚的知道每读100k,去更新一下ProgressBar。不知这样,你是否明白? c#如何移除掉事件的委托 让RegisterHotkey函数子限于在本程序处于活动容器在触发它的事件,在线等 请问:关于VS.NET中调试的问题 问一个thread的问题,急! 与数据库交互求助!!!在线等! 关于asp.net+access产品图片存贮的问题? 线程的优先级的好处是什么? 文件压缩加密解密解压问题 各位帅哥靓妹,怎么在C#的WINDOWS应用程序中当鼠标移过一幅图片时图片换成另外一幅? 编译器错误 1061 Request.UserHostName到底在什么情况下才能获得浏览器段的计算机名? 如何将中文转换为拼音
对于第一个问题,我还不知道应该怎么做。DateTime类支持直接计算两个时间点的间隔吗?
对于第二个问题,我的意思是不知道应该怎么设置。我现在的做法非常“傻”:(。先读一遍
文件计算出总的行数,赋给Maximum。然后每次读一行,就将Value加一。这样看上去是对的,
但是显然效率变低了。而我的程序希望效率高一些。
问题二:你应该得到文件的大小,用FileInfo取获得,你每次能读多少,除一下,看看大概读多少次,求出于Maximum的比率,从而进行定时刷新。
问题二:FileInfo中的Length属性是long型的,ProgressBar的Maximum是int型,这样如果进行强制转换,就会使得数据不准确。再用ReadLine方法读取出一行文本,计算其字节数,加到Value上时,有可能超出上面的Maximum,抛出异常。有什么办法变通一下?
第一个问题是我自己弄复杂了。其实只要在开始处理前,先记录下当时的时间。
然后等处理结束时,在记录下当时的时间。这样取出这两次时间的Minute,Second等属性,
再直接求差,就可以了。
关于第二个问题。我还是不明白你的做法(恕我愚钝:()。Maximum的初值是多少?因为在更新Value值时,必须保证其值在Minimum和Maximum之间的。