多线程之进度条

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

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

步骤如下:

  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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值