- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- backgroundWorker1.WorkerSupportsCancellation = true;
- }
- long l = 1000;
- private void button1_Click(object sender, EventArgs e)
- {
- button1.Enabled = false;
- button2.Enabled = true;
- try
- {
- l = Convert.ToInt64(textBox1.Text);
- }
- catch
- {
- }
- backgroundWorker1.RunWorkerAsync(l);
- }
- private void button2_Click(object sender, EventArgs e)
- {
- backgroundWorker1.CancelAsync();
- button2.Enabled = false;
- }
- private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
- {
- BackgroundWorker worker = sender as BackgroundWorker;
- worker.WorkerReportsProgress = true;
- e.Result = LongTimeOperation((long)e.Argument, worker, e);
- }
- private long LongTimeOperation(long maxNum, BackgroundWorker worker, DoWorkEventArgs e)
- {
- long result = 10;
- for (int i = 0; i < maxNum; ++i)
- {
- if (worker.CancellationPending)
- {
- e.Cancel = true;
- }
- else
- {
- result += i;
- int percentComplete = (int)((float)i / (float)maxNum * 100);
- worker.ReportProgress(percentComplete);
- System.Threading.Thread.Sleep(i);
- }
- }
- return result;
- }
- private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
- {
- this.progressBar1.Value = e.ProgressPercentage;
- }
- private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
- {
- if (e.Error != null)
- {
- MessageBox.Show(e.Error.Message, "错误");
- }
- else if (e.Cancelled)
- {
- MessageBox.Show("取消了操作");
- }
- else
- {
- MessageBox.Show("结构为:"+e.Result.ToString());
- }
- button1.Enabled = true;
- button2.Enabled = false;
- this.progressBar1.Value = 0;
- }
- }
进度条,怎么做? .
最新推荐文章于 2024-07-19 15:32:49 发布