2015年2月8日 星期日

[C#] backgroundworker應用並跳出處理畫面

image

兩個Form

image

image

image

在Form的按鈕寫入下列程式碼

   1: private void button1_Click(object sender, EventArgs e)
   2: {
   3:     processingcs pp = new processingcs();
   4:     if (pp.ShowDialog() == DialogResult.OK) { 
   5:     
   6:     }
   7: }







backgroundWorker1的屬性視窗,點選閃電圖示
然後將三個選項都Double Click.


image


在processingcs寫入下列程式碼



   1:  
   2:         private void processingcs_Load(object sender, EventArgs e)
   3:         {
   4:             backgroundWorker1.RunWorkerAsync();
   5:         }
   6:         private void DoWork() {
   7:             backgroundWorker1.WorkerReportsProgress = true;
   8:             for (int i = progressBar1.Minimum; i <= progressBar1.Maximum; i++)
   9:             {
  10:                 backgroundWorker1.ReportProgress(i);
  11:                 Thread.Sleep(50);
  12:             }
  13:         }
  14:         private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
  15:         {
  16:             DoWork();
  17:         }
  18:         private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
  19:         {
  20:             progressBar1.Value = e.ProgressPercentage;
  21:         }
  22:         private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
  23:         {
  24:             this.DialogResult = DialogResult.OK;
  25:             this.Close();
  26:         }

範例下載https://github.com/xxzeng/BackgroundworkerDemo.git

沒有留言:

張貼留言