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. 运行结果如下

  • 相关阅读:
    git
    HTML5 新增语义化标签
    vue directive 常用指令
    JS 数组 数组迭代方法 map, forEach, filter, some, every,
    图片居中
    进度条
    移动页面 REM自适应
    轮播图基本样式
    webpack3.0
    关于码云中项目提交的问题
  • 原文地址:https://www.cnblogs.com/markhe/p/3068094.html
Copyright © 2011-2022 走看看