async private void btnGo_Click(object sender, RoutedEventArgs e) { bool parsed = true; long nbDocs; int nbFilesPerFolder, nbFoldersPerFolder; parsed &= long.TryParse(txtNbDocs.Text, out nbDocs); parsed &= int.TryParse(txtFilesPerFolder.Text, out nbFilesPerFolder); parsed &= int.TryParse(txtFoldersPerFolder.Text, out nbFoldersPerFolder); if (!parsed) { System.Windows.MessageBox.Show(this, "Error while parsing values : check your string formats", "Word Generation", MessageBoxButton.OK, MessageBoxImage.Error); } else { var gen = new DocGeneration(); gen.Progress += Gen_Progress; btnGo.IsEnabled = false; _sw = Stopwatch.StartNew(); await gen.Generate(nbDocs, txtGenerationFolder.Text, nbFilesPerFolder, nbFoldersPerFolder, (int)sldParaPerDoc.Value, (int)sldWordsPerPara.Value); pbProgress.Value = 100; btnGo.IsEnabled = true; Process.Start(txtGenerationFolder.Text); System.Windows.MessageBox.Show(this, $"{nbDocs} documents generated in {_sw.ElapsedMilliseconds} ms", "Word Generation", MessageBoxButton.OK, MessageBoxImage.Information); } }