WinForm中BackgroundWorker控件用法简单实例
本文实例讲述了WinForm中BackgroundWorker控件用法。分享给大家供大家参考。具体如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWinFormApp
{
publicpartialclassForm2:Form
{
BackgroundWorkerbackgroundWorker;
inti=0;
intlen=100;
publicForm2()
{
InitializeComponent();
backgroundWorker=newBackgroundWorker();
backgroundWorker.DoWork+=newDoWorkEventHandler(backgroundWorker_DoWork);
backgroundWorker.RunWorkerCompleted+=newRunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);
backgroundWorker.ProgressChanged+=newProgressChangedEventHandler(backgroundWorker_ProgressChanged);
backgroundWorker.WorkerReportsProgress=true;
}
voidbackgroundWorker_ProgressChanged(objectsender,ProgressChangedEventArgse)
{
ThreadInvoke.SetMethodInvokeValue(label2,"进度:"+e.ProgressPercentage.ToString());
//progressBar.Value=e.ProgressPercentage;
}
voidbackgroundWorker_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse)
{
ThreadInvoke.SetMethodInvokeValue(label3,"结果:completed");
}
voidbackgroundWorker_DoWork(objectsender,DoWorkEventArgse)
{
ThreadInvoke.SetMethodInvokeValue(label3,"结果:start");
while(i<len)
{
i++;
System.Threading.Thread.Sleep(100);
ThreadInvoke.SetMethodInvokeValue(label1,"工作:"+(i*10).ToString());
backgroundWorker.ReportProgress(i);
Application.DoEvents();
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
backgroundWorker.RunWorkerAsync();
}
}
}
希望本文所述对大家的C#程序设计有所帮助。