private void DoWork(object sender, DoWorkEventArgs e) { var args = new AsyncWorkerEventArgs(e.Argument); args.State = WorkerState.None; this.OnWork(args); //AsyncWorkerEventArgs arg = new AsyncWorkerEventArgs(e.Argument); //arg.State = WorkerState.None; //WorkHandler handler = new WorkHandler(this.OnWork); //handler.BeginInvoke(arg, null, null); //e.Result = arg; //while (true) //{ // if (worker.CancellationPending) // { // e.Cancel = true; // arg.State = WorkerState.Canceled; // break; // } // if (arg.State != WorkerState.None) // break; // // 睡眠5毫秒,让出CUP // System.Threading.Thread.Sleep(5); //} }
public void Report(AsyncWorkerEventArgs e) { var args = new AsyncWorkerEventArgs(e.Argument) { Count = e.Count, Num = e.Num, State = e.State, Tag = e.Tag, Tip = e.Tip }; worker.ReportProgress(0, args); }
protected virtual void OnWork(AsyncWorkerEventArgs e) { try { if (this._LoaderForm != null) { this._LoaderForm.Tag = e; } if (_AsynWork != null) { _AsynWork.Invoke(this, e); } } catch (Exception ex) { Log.Debug(ex); Log.Debug("[DocumentScene]-[AsyncWorker->OnWork]-[StackTrace:{0}]-[Message:{1}]" , ex.StackTrace, ex.Message); } }