先设置两个进度条和一个按钮,分别命名为pbProgressBar1,pbProgressBar2,btnStart
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
namespace Delegate2014_12_15
{
public partial class Form1 : Form
{ //定义回调
private delegate void SetProgressBarValueCallBack(int value);
//声明回调
private SetProgressBarValueCallBack setProgressBarValueCallBack;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//进度条滚动设置
private void btnStart_Click(object sender, EventArgs e)
{
setProgressBarValueCallBack = new SetProgressBarValueCallBack(setValueMethod);
Thread setValueThread =new Thread(setProgressBarValue2);
setValueThread.Start();
for (int i = 0; i <= 100; i++)
{
Application.DoEvents();
Thread.Sleep(50);
pbProgressBar1.Value = i;
}
}
//设置进度条2 的线程的值
private void setProgressBarValue2()
{
for (int i = 0; i <= 100; i++)
{
//Application.DoEvents();
Thread.Sleep(50);
//pbProgressBar2.Value = i;
pbProgressBar2.Invoke(setProgressBarValueCallBack,i);
}
}
//定义滚动条2的委托方法
private void setValueMethod(int value)
{
pbProgressBar2.Value = value;
}
}
}