注册 登录
编程论坛 C# 论坛

请问在winform怎么实现在3秒的时间,让1循环累加一百次到100呢

fangfangit 发布于 2014-12-18 23:34, 2279 次点击
请问在winform怎么实现在3秒的时间,让1循环累加一百次到100呢
12 回复
#2
fangfangit2014-12-19 08:32
求帮助啊啊啊啊啊啊啊啊啊啊啊啊啊啊
#3
邓士林2014-12-19 08:43
如果累加时间已经超过3秒,就不晓得了,提高机器环境,如果没到,用线程,睡眠<3秒
#4
xydddaxia2014-12-19 09:17
为什么要3秒呢,估计3毫秒就完成了吧
#5
邓士林2014-12-19 09:55
不晓得他要的是什么效果。
#6
fangfangit2014-12-19 19:38
回复 5楼 邓士林
都是老师的奇葩作业。说登陆窗口用标签控件显示百分比数字,使用timer控件控制百分比的递增。。
#7
fangfangit2014-12-19 19:41
回复 3楼 邓士林
嗯,看到用线程睡眠,但是是要打开画面,首先label显示1,然后递增到100,如果在load里面写循环的话,那就是等执行完循环最后才显示窗体,显示出来的也是100。。怎么解决啊??请问
#8
lxsxd2014-12-21 09:15
这个问题,我还没有在编程环境里测试。我的理解是:
1、循环1到100,应该没有任何问题;因为根本用不到3秒就完成。
2、关键是3秒时间完成。
做法:1)1-100,想当于累加100次,100/3=33.3333,即累加33次为1秒;2)如何让循环累加延时,使用sleep,3)计算好一次累加需要多少时间,3/100=0.03秒;
好了,在循环里面添加一句延时语句sleep(30),括号里把0.03秒化成毫秒。
每加一次,为30毫秒,100次为3000毫秒。
#9
lxsxd2014-12-21 09:37
在控制台,代码如下:
1)using区添加using System.Threading;
2)         int count = 0;
            for (int i = 0; i < 100; i++)
            {
                Thread.Sleep(30);//每次累加都延时30毫秒,100次为3000毫秒
                count++;
            }
#10
huwengui2014-12-21 11:52
你们老师是要一个processbar控件,3秒显示计算的进度条吧
#11
Maick2014-12-30 16:26
3000/100

30毫秒

timer控件设置时间间隔为30毫秒...timer 的调用方法就是累加了

我的思路而已
#12
baijiaheide2015-01-06 19:37
程序代码:
private void timer1_Tick(object sender, EventArgs e)
        {
            progressBar1.Value += 1;
            if (progressBar1.Value==100)
            {
                timer1.Enabled = false;               
               
            }

        }
        
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Interval = 30;
        }


这样行不行。
#13
humanerr2016-03-09 20:40
回复 楼主 fangfangit
先 3/100 求出来每次增加1所用的时间.
然后每隔 3/100 的时间执行一次.
1