首页 > 编程 > C# > 正文

WinForm中BackgroundWorker控件用法简单实例

2020-01-24 01:31:17
字体:
来源:转载
供稿:网友

本文实例讲述了WinForm中BackgroundWorker控件用法。分享给大家供大家参考。具体如下:

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;namespace WinFormApp{ public partial class Form2 : Form {  BackgroundWorker backgroundWorker;  int i = 0;  int len = 100;  public Form2()  {   InitializeComponent();   backgroundWorker = new BackgroundWorker();   backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);   backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);   backgroundWorker.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker_ProgressChanged);   backgroundWorker.WorkerReportsProgress = true;  }  void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)  {   ThreadInvoke.SetMethodInvokeValue(label2, "进度:" + e.ProgressPercentage.ToString());   //progressBar.Value = e.ProgressPercentage;  }  void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)  {   ThreadInvoke.SetMethodInvokeValue(label3, "结果:completed");  }  void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)  {   ThreadInvoke.SetMethodInvokeValue(label3, "结果:start");   while (i < len)   {    i++;    System.Threading.Thread.Sleep(100);    ThreadInvoke.SetMethodInvokeValue(label1, "工作:" + (i * 10).ToString());    backgroundWorker.ReportProgress(i);    Application.DoEvents();   }  }  private void button1_Click(object sender, EventArgs e)  {   backgroundWorker.RunWorkerAsync();  } }}

希望本文所述对大家的C#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表