private async void StartOptimization() { IsRunning = true; var watch = new Stopwatch(); watch.Start(); await Task.Run(() => { Optimizer = new Optimizer(Dataset); OptimizationResult = Optimizer.Optimize(); }); var duration = TimeSpan.FromMilliseconds(watch.ElapsedMilliseconds); watch.Stop(); IsRunning = false; SelectedBlockers.Clear(); SelectedBlockers.AddRange(OptimizationResult.ResolvedBlockers); SetStatusMessage($"Finished in {duration}."); ResolveSelectedBlockersCommand.Execute(); }