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; }
private void DoComplete(bool cancel, WorkResult result) { if (cancel) { return; } lstResult.Items.Add(result.id.ToString() + '\t' + result.result.ToString()); }
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()); } }
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(); } } }
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; }
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; }
private void RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { WorkResult result = (WorkResult)e.Result; Complete(e.Cancelled, result); }