Строковое чтение файла приводит к нежелательным издержкам. Было бы лучше прочитать все файлы сразу.
Подумайте об использовании async / await. Это даст вам более отзывчивый интерфейс.
Поэтому я бы предложил следующее решение:
private async void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(openFileDialog1.FileName);
Text = openFileDialog1.FileName + " - " + "Fixprt";
textBox1.Text = await sr.ReadToEndAsync();
sr.Close();
}
openFileDialog1.Dispose();
}
Редактировать
Как обсуждалось в комментариях, это решение неправильно обрабатывает разрывы строк unix. Для этого случая может быть другое решение:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(openFileDialog1.FileName);
Text = openFileDialog1.FileName + " - " + "Fixprt";
var sb = new StringBuilder();
while (!sr.EndOfStream)
{
sb.AppendLine(sr.ReadLine());
}
textBox1.Text = sb.ToString();
sr.Close();
}
openFileDialog1.Dispose();
}
Сейчас мы используем StringBuilder , который предназначен для быстрой обработки строковых данных.