C# 多线程使用progressBar进度条控件

发表于:2014-5-23 09:55

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:prettymao    来源:51Testing软件测试网采编

  该例子对为多线程使用progressBar的一个简单例子。
  实现:
  (1)计算progressBar运行时间(既进度条开始到结束的时间)
  (2)利用多线程运行(用这个应该必须用多线程吧,否则没什么实际意义,因为你有进度条必然是要做其他的事情给予一个进度提示)
  大概就如下图了:
  完整代码如下:
  引入命名空间:
  using System.Threading;
  完整代码:
namespace ProgressBar
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DateTime dt;    //记时
private void btnStart_Click(object sender, EventArgs e)
{
Thread myThread = new Thread(DoData);
myThread.IsBackground = true;
myThread.Start(int.Parse(txtWhileNumber.Text)); //线程开始
dt = DateTime.Now;  //开始记录当前时间
}
private delegate void DoDataDelegate(object number);
/// <summary>
/// 进行循环
/// </summary>
/// <param name="number"></param>
private void DoData(object number)
{
if (progressBar1.InvokeRequired)
{
DoDataDelegate d = DoData;
progressBar1.Invoke(d, number);
}
else
{
progressBar1.Maximum = (int)number;
for (int i = 0; i < (int)number; i++)
{
progressBar1.Value = i;
Application.DoEvents();
}
MessageBox.Show(DateTime.Now.Subtract(dt).ToString());  //循环结束截止时间
}
}
private void btnClear_Click(object sender, EventArgs e)
{
progressBar1.Value = 0;
}
}
}
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号