progressBar+线程举例(winform,c#)
来源:互联网 发布:遗传算法的基本流程图 编辑:程序博客网 时间:2024/06/05 04:48
int count = 1000;
/// <summary>
/// 方法1
/// </summary>
private void setthread()
{
this.progressBar1.Minimum = 0;
this.progressBar1.Value = 0;
this.progressBar1.Maximum = count;
for (int i = 0; i < count; i++)
{
this.progressBar1.Value++;
Application.DoEvents();
this.label2.Text = "总数"+count.ToString()+",剩余数量:" +Convert.ToString(count-i-1);
}
}
/// <summary>
/// 方法2
/// </summary>
private void setthread2()
{
this.progressBar1.Minimum = 0;
this.progressBar1.Value = 0;
this.progressBar1.Maximum = count;
for (int i = 0; i < count; i++)
{
this.progressBar1.Value++;
this.label2.Text = "总数" + count.ToString() + ",剩余数量:" +Convert.ToString(count - i - 1);
this.label2.Refresh();
}
}
/// <summary>
/// 方法3,线程
/// </summary>
private void setthread3()
{
for (int i = 0; i < count; i++)
{
string tmptext = "总数" + count.ToString() + ",剩余数量:" +Convert.ToString(count - i - 1);
this.Invoke(new setLabel(setLabel2), tmptext);
this.Invoke(new setProgressBar(setProgressBar1),1);
}
}
private void button1_Click(object sender, EventArgs e)
{
setthread();
}
private void button2_Click(object sender, EventArgs e)
{
setthread2();
}
System.Threading.Thread thread;
private void button3_Click(object sender, EventArgs e)
{
this.progressBar1.Minimum = 0;
this.progressBar1.Value = 0;
this.progressBar1.Maximum = count;
System.Threading.Thread.CurrentThread.IsBackground = true;
thread = new System.Threading.Thread(newSystem.Threading.ThreadStart(setthread3));
thread.Start();
}
public delegate void setLabel(string text);
public delegate void setProgressBar(int value);
private void setLabel2(string text)
{
this.label2.Text = text;
}
private void setProgressBar1(int value)
{
this.progressBar1.Value = this.progressBar1.Value+value;
}
----------------------------------------------------------------------------------------------
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Threading;
privatevoid StopThread()
{
if (timerThread != null)
{
}
}
publicvoid ThreadProc()
{
for (inti = 0; i< 10000;i++)
{
}
flag=true;
}
privatevoid progress_Load(object sender,System.EventArgs e)
{
this.progressBar1.Minimum = 0;
this.progressBar1.Maximum = 10000;
}
privatevoid button1_Click(object sender,System.EventArgs e)
{
StopThread();
timerThread =new Thread(new ThreadStart(ThreadProc));
timerThread.IsBackground = true;
timerThread.Start();
while (flag == false)
{
}
Form1 frm1=new Form1(a.ToString());
frm1.Show();
}
}
- progressBar+线程举例(winform,c#)
- C#Winform线程操作界面控件
- 关于线程的总结(.net,c#,winform)
- C#winform之跨线程UI调用
- C#-WinForm跨线程修改UI界面
- ProgressBar线程更新问题
- C# .Net WinForm 进度条ProgressBar 用法 实例
- C# winform progressbar +label显示进度
- WinForm(C#)中跨线程访问控件的解决方法
- C#、Winform子线程更新界面主线程信息
- 跨线程更新界面(winform下 C#)
- WinForm(C#)中跨线程访问控件的解决方法
- C# Winform 跨线程更新U…
- WinForm(C#)中跨线程访问控件的解决方法
- C#WinForm 往线程里传参数的方法总结
- 线程进程概述举例
- 线程的同步举例
- 线程编程举例
- 详细教程C#中的委托和事件应用(二)
- 详细教程C#中的委托和事件应用(三)
- C#将数据导出到Excel汇总
- C#模拟MSN窗体抖动
- sql中CASE的用法
- progressBar+线程举例(winform,c#)
- Invoke 和 BeginInvoke 的区别
- 最新Silverlight开发环境配置介绍
- backgroundworker实现进度条显示实…
- 常用的WINFORM开发经验(C#)
- winform绘图技术(一)
- winform绘图技术(二)
- C#操作Excel对象
- winfrom操作excel