zoukankan      html  css  js  c++  java
  • 多线程之进度条

    建立一个公用的进度条控件,每次加载较慢的时候使用以改进用户体验。

    通过启用新线程的方式来进行调用。

    步骤如下:

    1. 建立一个单独的窗体,包含一个进度条控件
      • 设置进度条的Style为ProgressBarStyle.Marquee
      • 增加一属性(LoadCompleted)标示加载是否完成
    2. 在其它窗体中通过开启新线程进行调用
    View Code
     1  public partial class UcLoadData_ShowMarqueeProcess : UserControl
     2     {
     3         public static FrmMarqueeProcess xf;
     4         public static event EventHandler onLoadFinished;
     5 
     6         public UcLoadData_ShowMarqueeProcess()
     7         {
     8             InitializeComponent();
     9         }
    10 
    11         private void btnFill_Click(object sender, EventArgs e)
    12         {
    13             int iEnd = 10000;
    14             Thread t = new Thread(new ThreadStart(ShowProcess));
    15             t.Start();
    16 
    17             for (int i = 0; i < iEnd; i++)
    18             {
    19                 string strContent = string.Format("this is the {0}th record", i);
    20                 this.lstContent.Items.Add(strContent);
    21             }
    22 
    23             onLoadFinished += new EventHandler(LoadFinish);
    24             if (onLoadFinished != null)
    25                 onLoadFinished.Invoke(sender, e);
    26 
    27             while (!xf.LoadCompleted)
    28                 Application.DoEvents();
    29 
    30             t.Abort();
    31         }
    32         private static void ShowProcess()
    33         {
    34             xf = new FrmMarqueeProcess();
    35             xf.ShowDialog();
    36         }
    37 
    38         private static void LoadFinish(object sender, EventArgs e)
    39         {
    40             xf.LoadCompleted = true;
    41         }
    42     }

        3. 运行结果如下

  • 相关阅读:
    Cronolog切割tomcat日志
    使用TortoiseGit+码云管理项目代码
    POI使用 (4.0) 常用改动
    MySQL-with rollup函数运用
    CentOS7使用yum安装MySQL8.0
    java 8 新特性之Stream的排序/分类
    java阳历转农历
    MyBatis SQL xml处理小于号与大于号
    mysql update不能直接使用select的结果
    Java面试中遇到的坑【填坑篇】
  • 原文地址:https://www.cnblogs.com/markhe/p/3068094.html
Copyright © 2011-2022 走看看