C# 多线程使用progressBar进度条控件
2011-12-03 09:13 Andrew.Wangxu 阅读(2788) 评论(2) 编辑 收藏 举报该例子对为多线程使用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;
}
}
}
若以上代码编译有问题可以到下面的地址下载完整项目文件:
https://files.cnblogs.com/andrew-blog/ProgressBar.rar
参考:http://www.wxzzz.com/?id=37
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人