public void AddXMlFileToProjectAsync(Action <ProjectTermsCloudResult> resultCallback, Action <int> progressCallback) { var worker = new BackgroundWorker(); worker.WorkerReportsProgress = true; worker.DoWork += (sender, e) => { this.Progress += (s, p) => { if (worker.IsBusy) { worker.ReportProgress(p.Percent); } }; AddXMlFileToProject(); }; worker.RunWorkerCompleted += (sender, e) => { var result = new ProjectTermsCloudResult(); if (e.Error != null) { result.Exception = e.Error; } resultCallback(result); }; worker.ProgressChanged += (sender, e) => { progressCallback(e.ProgressPercentage); }; worker.RunWorkerAsync(); }
public void GenerateWordCloudAsync(Action <ProjectTermsCloudResult> resultCallback) { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (sender, e) => { FilterProjectTerms(); e.Result = Terms; }; worker.RunWorkerCompleted += (sender, e) => { ProjectTermsCloudResult result = new ProjectTermsCloudResult(); if (e.Error != null) { result.Exception = e.Error; } else { result.WeightedTerms = (IEnumerable <ITerm>)e.Result; } resultCallback(result); }; worker.RunWorkerAsync(); }