private void SelectButton_Click(object sender, EventArgs e) { // Create an instance of the open file dialog box. var openFileDialog1 = new OpenFileDialog { // ReSharper disable once LocalizableElement Filter = "Alle files (*.*)|*.*", FilterIndex = 1, Multiselect = false }; // Process input if the user clicked OK. if (openFileDialog1.ShowDialog() == DialogResult.OK) { FileLabel.Text = openFileDialog1.FileName; FindTextButton.Enabled = true; TextToFindTextBox.Enabled = true; FindWithRegexButton.Enabled = true; TextToFindWithRegexTextBox.Enabled = true; try { DisableInput(); FilterTextBox.AppendText("*** Processing file '" + openFileDialog1.FileName + "' ***" + Environment.NewLine + Environment.NewLine); Application.DoEvents(); var stopWatch = new Stopwatch(); var timeoutOption = FilterReaderTimeout.NoTimeout; switch (TimeoutOptionsComboBox.SelectedIndex) { case 0: timeoutOption = FilterReaderTimeout.NoTimeout; break; case 1: timeoutOption = FilterReaderTimeout.TimeoutOnly; break; case 2: timeoutOption = FilterReaderTimeout.TimeoutWithException; break; } var options = new FilterReaderOptions() { DisableEmbeddedContent = DisableEmbeddedContentCheckBox.Checked, IncludeProperties = IncludePropertiesCheckBox.Checked, ReadIntoMemory = ReadIntoMemoryCheckBox.Checked, ReaderTimeout = timeoutOption, Timeout = int.Parse(TimeoutTextBox.Text) }; using (var reader = new FilterReader(openFileDialog1.FileName, string.Empty, options)) { stopWatch.Start(); string line; string tempFileName = Path.GetTempFileName(); while ((line = reader.ReadLine()) != null) { FilterTextBox.AppendText(line + Environment.NewLine); Application.DoEvents(); System.IO.File.AppendAllLines(tempFileName, new[] { line }); } stopWatch.Stop(); FilterTextBox.AppendText(Environment.NewLine + "*** DONE IN " + stopWatch.Elapsed + " ***" + Environment.NewLine); Application.DoEvents(); } } catch (Exception exception) { DisableInput(); FilterTextBox.Text = exception.StackTrace + Environment.NewLine + GetInnerException(exception); } finally { EnableInput(); } } }