private async void ExecuteOpen(object param) { ObservableModelPrediction.Clear(); AvailableClasses.Clear(); FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.OK) { try { IsRunning = true; (var OldImages, var NewImages) = await client.PostOld(fbd.SelectedPath, cts); OldImages.ForEach(delegate(PredictionResponse prs) { AddPrecomputedPrediction(new ModelPrediction(prs.ClassName, prs.Proba, prs.FilePath, Convert.FromBase64String(prs.Image))); }); var NewImagesResults = await client.GetNew(NewImages, cts); NewImagesResults.ForEach(delegate(PredictionResult pr) { AddPrediction(pr); }); IsRunning = false; } catch (TaskCanceledException tce) { MessageBox.Show("Tasks were cancelled"); } catch (Exception e) { MessageBox.Show("Prediction failed!"); } } }