zoukankan      html  css  js  c++  java
  • 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%

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

     

  • 相关阅读:
    Linux2.6X内核中文件相关结构体总结
    Linux 内核文件系统与设备操作流程分析
    在linux下删除的共享文件怎么恢复
    fedora17的U盘安装和硬盘安装
    cakephp
    【25.00%】【vijos P1907】飞扬的小鸟
    【14.36%】【codeforces 614C】Peter and Snow Blower
    【14.67%】【codeforces 615D】Multipliers
    【records】10.24..10.30
    【非常高%】【codeforces 733A】Grasshopper And the String
  • 原文地址:https://www.cnblogs.com/Veky/p/3263929.html
Copyright © 2011-2022 走看看