好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

WinForm中BackgroundWorker控件用法简单实例

本文实例讲述了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#程序设计有所帮助。

dy("nrwz");

查看更多关于WinForm中BackgroundWorker控件用法简单实例的详细内容...

  阅读:85次