private static bool TimeWordSearch(IDictionarySearch search, string wordToFind, IEnumerable <string> dictionary, out long runTime) { var timer = new Stopwatch(); timer.Start(); var wordExists = search.FindWordInDictionary(wordToFind, dictionary); timer.Stop(); runTime = timer.ElapsedMilliseconds; return(wordExists); }
private async void Button_Click(object sender, RoutedEventArgs e) { string exp = inputBox.Text; //Выражение для поиска if (string.IsNullOrEmpty(exp)) //Не пустое { MessageBox.Show("Введите что-нибудь в поле ввода"); return; } Search = new FileDictionarySearch(Path, Checker); //Создаем поиск в файле с заданными параметрами btn.IsEnabled = false; //Отключаем кнопку поиска status.Visibility = Visibility.Hidden; //Скрываем статусное сообщение IEnumerable <string> result = null; //Результаты try { result = Search.Find(exp); //Попытка поиска } catch (FileNotFoundException) { MessageBox.Show("Не найден файл. Убедитесь, что вы выбрали существующий"); btn.IsEnabled = true; return; } int total = await result.CountAsync(); //Всего результатов string[] output = await result.Take(5000).ToArrayAsync(); //Взять не больше 5000 outputBox.Text = string.Join(Environment.NewLine, output); //Положить каждый по одному на строку status.Content = $"Показано {output.Length} результатов из {total}"; //Вывести количество найденных и выведенных на экран status.Visibility = Visibility.Visible; //Статус видимый btn.IsEnabled = true; //Кнопку снова можно нажать }