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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
switchButton(false);
this.backgroundWorker1.RunWorkerAsync(100);
}
protected void switchButton(Boolean ok)
{
this.button1.Enabled = ok;
this.button2.Enabled = ok == false;
}
private void button2_Click(object sender, EventArgs e)
{
this.backgroundWorker1.CancelAsync();
switchButton(true);
}
private void button3_Click(object sender, EventArgs e)
{
MessageBox.Show(this, "button clicked");
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker bw = sender as BackgroundWorker;
for (int i = 0; i < 100; i++)
{
if (e.Cancel = bw.CancellationPending)
{
return;
}
else
{
Thread.Sleep(100);
bw.ReportProgress(1);
}
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar1.Increment(e.ProgressPercentage);
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Cancelled == false)
{
MessageBox.Show(this,"Finished");
}
this.progressBar1.Value = 0;
switchButton(true);
}
}
}