internal AsyncExecuteCommandProcess(string processName, Action <object, DoWorkEventArgs> WorkerDelegate) { this.Name = processName; this.WorkerDelegate = new Action <object, DoWorkEventArgs>(this.InternalWorker); this.outsideWorkerDelegate = WorkerDelegate; this.progressInfo = new AsyncProgressInfo() { CompleteRatio = 0.0, Status = AsyncProcessResult.Done }; }
private void InternalWorker(object sender, DoWorkEventArgs args) { if (!this.Cancel) { DoWorkEventArgs doWorkEventArgs = new DoWorkEventArgs((object)this.progressInfo); this.outsideWorkerDelegate(sender, doWorkEventArgs); this.progressInfo = (AsyncProgressInfo)doWorkEventArgs.Result; args.Result = (object)this.progressInfo.Status; } else { args.Result = (object)AsyncProcessResult.Aborted; } }