博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程之进度条
阅读量:4690 次
发布时间:2019-06-09

本文共 1535 字,大约阅读时间需要 5 分钟。

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

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

步骤如下:

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

转载于:https://www.cnblogs.com/markhe/archive/2013/05/08/3068094.html

你可能感兴趣的文章