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#程序设计有所帮助。