使用线程来控制进度条
创建一个Windows程序,在窗体中添加两个进度条PrograssBar1~ProgressBar2,使用线程来控制进度条,实现进度不一的两条进度条同时操作。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Thread MyThread1;
Thread MyThread2;
void GetProgress2()
{
while (progressBar1.Value < 100)
{
progressBar1.PerformStep();
if (progressBar2.Value >= 100)
{
if (MyThread1.IsAlive)
{
MyThread1.Abort();
}
}
else
{
if (progressBar1.Value >= 100)
{
progressBar1.Value = 0;
}
}
Thread.Sleep(50);
}
}
void GetProcess1()
{
while (progressBar2.Value < 100)
{
progressBar2.PerformStep();
if (progressBar2.Value >= 100)
{
MessageBox.Show("进度完成");
if (MyThread2.IsAlive)
{
MyThread2.Abort();
}
}
Thread.Sleep(50);
}
}
private void Form1_Load(object sender, EventArgs e)
{
progressBar1.Step = 10;
progressBar2.Step = 1;
CheckForIllegalCrossThreadCalls = false;
MyThread1 = new Thread(new ThreadStart(GetProcess1));
MyThread2 = new Thread(new ThreadStart(GetProgress2));
MyThread1.Priority = ThreadPriority.Lowest;
MyThread1.Start();
MyThread2.Start();
}
}
}
运行结果: