Ejemplo n.º 1
0
        private void DoWork(object sender, DoWorkEventArgs e)
        {
            int sum = 0;

            for (int k = 0; k < 1000; k++)
            {
                if (BgWorker.CancellationPending)      //指示应用程序是否已请求取消后台操作
                {
                    e.Cancel = true;
                    return;
                }
                for (int i = Range.nStart; i < Range.nEnd; i++)
                {
                    sum += i;
                }
                //在拥有控件的基础窗口句柄的线程上,用指定的自变量列表执行指定委托
                Frm.Invoke(SendMessage, Range.id, sum.ToString() + '\t' + k.ToString());
            }
            WorkResult result = new WorkResult {
                id     = Range.id,
                result = sum
            };

            e.Result = result;
        }
Ejemplo n.º 2
0
 private void DoComplete(bool cancel, WorkResult result)
 {
     if (cancel)
     {
         return;
     }
     lstResult.Items.Add(result.id.ToString() + '\t' + result.result.ToString());
 }
Ejemplo n.º 3
0
 private void DoComplete(bool cancel, WorkResult result)
 {
     if (cancel)
     {
         return;
     }
     if (id == 1)
     {
         lstRange.Items.Add(result.result.ToString());
     }
     else if (id == 0)
     {
         lstResult.Items.Add(result.result.ToString());
     }
 }
Ejemplo n.º 4
0
 private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     if (e.Cancelled)
     {
         txtResult1.Text = "canceled";
     }
     else
     {
         WorkResult result = (WorkResult)e.Result;
         if (result.id == 1)
         {
             txtResult1.Text = result.result.ToString();
         }
         else if (result.id == 2)
         {
             txtResult2.Text = result.result.ToString();
         }
     }
 }
Ejemplo n.º 5
0
        private void DoWork(object sender, DoWorkEventArgs e)
        {
            int sum = 0;

            for (int k = 0; k < 1000; k++)
            {
                if (BgWorker.CancellationPending)      //指示应用程序是否已请求取消后台操作
                {
                    e.Cancel = true;
                    return;
                }
                for (int i = Range.nStart; i < Range.nEnd; i++)
                {
                    sum += i;
                }
            }
            WorkResult result = new WorkResult {
                id     = Range.id,
                result = sum
            };

            e.Result = result;
        }
Ejemplo n.º 6
0
        private void DoWork(object sender, DoWorkEventArgs e)
        {
            WorkRange wr  = (WorkRange)e.Argument;
            int       sum = 0;

            for (int k = 0; k < 1000; k++)
            {
                if (bgWork.CancellationPending)      //指示应用程序是否已请求取消后台操作
                {
                    e.Cancel = true;
                    return;
                }
                for (int i = wr.nStart; i < wr.nEnd; i++)
                {
                    sum += i;
                }
            }
            WorkResult result = new WorkResult();

            result.id     = wr.id;
            result.result = sum;
            e.Result      = result;
        }
Ejemplo n.º 7
0
        private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            WorkResult result = (WorkResult)e.Result;

            Complete(e.Cancelled, result);
        }