学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
 34 1234
发新话题
打印

c#写的进取条

本主题由 静夜思 于 2008-3-5 19:02 鉴定为原创并加为精华

c#写的进取条

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace ThreadUpdateUI
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                backgroundWorker1.RunWorkerAsync(1000);
            }
            catch (Exception es)
            {

                MessageBox.Show(es.Message);
            }
        }

        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bk=sender as BackgroundWorker;//把serder转化为BackgroundWorker(后台操作)
            int count = (int)(e.Argument);//从 DoWorkEventArgs 参数的 Argument 属性中提取该操作所需的所有参数.并保存起来.
            e.Result = longtime(count, bk, e);//将计算的结果赋给 DoWorkEventArgs 的 Result 属性。
        }
        Random rd = new Random();//这个取消也没有什么关系啊???
        long longtime(int pp,BackgroundWorker bk,DoWorkEventArgs e)
        {
            long time=0;
            int i = 0;
            while (i < pp)
            {
                i++;
                //判断是否取消后台操作
                if (bk.CancellationPending)
                {
                    e.Cancel = true;
                    break;
                }
                else
                {
                    time += i;
                }
                //完成率
                int view = (int)((float)i / pp * 100);
                bk.ReportProgress(view);//已完成后台操作的百分完成率,范围0%-100%
                System.Threading.Thread.Sleep(5);//sleep()里面的数字越少就越快
            }
            return time;
        }

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            if (e.Cancelled)
            {
                MessageBox.Show("取消");
            }
            else
            {
                MessageBox.Show(e.Result.ToString());
            }
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;//获取异步任务的进度百分比
            label1.Text = e.ProgressPercentage.ToString();//显示出来
        }

        private void button2_Click(object sender, EventArgs e)
        {
            backgroundWorker1.CancelAsync();
        }

    }
}

其实这个东西还是看帮助写的,老师也教啦点。第一次上原创!

[ 本帖最后由 恋轩念伊人 于 2008-3-11 16:04 编辑 ]

TOP

进去条!!![bc10]

不过原创就要支持!!!
浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip

TOP

是进度条吧...我也写过...呵呵...

画图的时候烦死了,呵呵



[ 本帖最后由 peach5460 于 2008-3-5 19:48 编辑 ]
附件: 您所在的用户组无法下载或查看附件
我谨写下了我的见解
如果写错了...欢迎大家交流...

TOP

支持原创
愛生活 && 愛編程

TOP

雁过留声,人过留名

TOP

支持原创
不错 学习了
英者自知,雄者自胜

TOP

第一次发原创,就有这么多人来做客,
先谢谢啦
以后还得像你们学习
自己还的在这里多发与原创!![bc10]
我不是一个随便的人,我随便起来不是人我哦。信不?

TOP

有意思!!!
我清高和我骄傲的倔强,在风中大声的唱:我不听,我不听~~做我自己最特别,呼呼~~啦啦~~~

TOP

回复 8# 的帖子

我道觉得你有意思。
我不是一个随便的人,我随便起来不是人我哦。信不?

TOP

原创~~!真牛!精品啊,LZ就是个不折不扣的高手中的高手!还望多提携小弟呀!

[ 本帖最后由 michael_wp 于 2008-3-9 12:03 编辑 ]
学海无涯,编程海洋比学海还大!

TOP

 34 1234
发新话题