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

本文提供了一个关于如何在多线程环境下使用进度条(progressBar)进行实时进度反馈的简单实例。通过引入命名空间并使用Thread类创建多线程,实现了在执行耗时任务的同时展示任务进度的功能。详细介绍了初始化组件、记录运行时间、启动线程、设置进度条最大值及更新值的过程,并在任务完成后显示结束时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该例子对为多线程使用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; } } }

若以上代码编译有问题可以到下面的地址下载完整项目文件:

http://download.youkuaiyun.com/source/3482668

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值