BackgroundWorker 控件

BackgroundWorker是.net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作。耗时的操作(如下载和数据库事务)在长时间运行时可能会导致用户界面 (UI) 始终处于停止响应状态。如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用BackgroundWorker类方便地解决问题。

1、将控件拖到窗体上

2、在按钮事件中,写下如下代码

        private void BtnOk_Click(object sender, EventArgs e)        

    {            

    BtnOk.Enabled = false; //按钮不可用 

    pictureBox1.Visible = true;//显示加载图片

            backgroundWorker1.RunWorkerAsync();//加载数据

        }

3、实现DoWork方法,实现具体操作

4、实现RunWorkerCompleted方法,辅助线程完成

        private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            BtnOk.Enabled = true;
            pictureBox1.Visible = false;
        }

效果图:

 

如果要实现处理数据时,显示进度,则需注意几个地方

①、设置属性

②、实现ProgressChanged方法

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
        }

③、在DoWork方法中,加入语句

  backgroundWorker1.ReportProgress(10);//10%

  在指定位置插入,表示执行到该步骤时,进度条百分比显示多少。

 

 

posted @ 2013-08-17 09:59  残韵  阅读(324)  评论(0编辑  收藏  举报