111,129
社区成员
发帖
与我相关
我的任务
分享using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System .Threading ;
namespace Multitread
{
/// <summary>
/// Description of MainForm.
/// </summary>
///
public delegate void IncreaseValue();
public partial class MainForm : Form
{
private Thread one;
private Thread two;
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
private void start1()
{
this .Invoke(new IncreaseValue (IncreaseProcessBar1Value ));
}
private void start2()
{
this .Invoke(new IncreaseValue (IncreaseProcessBar2Value ));
}
void Button1Click(object sender, EventArgs e)
{
}
protected void IncreaseProcessBar1Value()
{
for(int i = 0;i<100;i++)
{
System .Threading .Thread .Sleep (100);
progressBar1 .Value +=1;
}
}
void Button3Click(object sender, EventArgs e)
{
one = new Thread (new ThreadStart (start1 ));
two = new Thread (new ThreadStart (start2 ));
one .Start ();
two .Start ();
}
protected void IncreaseProcessBar2Value()
{
for(int i = 0;i<100;i++)
{
System .Threading .Thread .Sleep (100);
progressBar2 .Value +=1;
}
}
void Button2Click(object sender, EventArgs e)
{
}
}
}
public partial class MainForm : Form
{
private Thread one;
private Thread two;
public MainForm()
{
InitializeComponent();
}
protected void IncreaseProcessBar1Value()
{
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(100);
progressBar1.Invoke(new Action(start1));
}
}
protected void IncreaseProcessBar2Value()
{
for (int i = 0; i < 100; i++)
{
System.Threading.Thread.Sleep(100);
progressBar1.Invoke(new Action(start2));
}
}
private void start1()
{
progressBar1.Value += 1;
}
private void start2()
{
progressBar2.Value += 1;
}
private void button1_Click(object sender, EventArgs e)
{
one = new Thread(new ThreadStart(IncreaseProcessBar1Value));
two = new Thread(new ThreadStart(IncreaseProcessBar2Value));
one.Start();
two.Start();
}
}
private void start1()
{
this .Invoke(new IncreaseValue (IncreaseProcessBar1Value ));
}
private void start2()
{
this .Invoke(new IncreaseValue (IncreaseProcessBar2Value ));
}