У меня есть приложение Windows Forms, которое может запустить консоль для отладки.В приложении через нажатие меню я читаю файл CSV и записываю его в консоль.Функция, которая делает это, приведена ниже.
protected void menuRead_Click(object sender, EventArgs e)
{
// ... functionality to load CSV files
System.IO.Stream inputDataFile = null;
OpenFileDialog fd = new OpenFileDialog();
fd.InitialDirectory = "c:\\";
fd.Filter = "csv files (*.csv)|*.csv|All files (*.*)|*.*";
fd.FilterIndex = 1;
fd.RestoreDirectory = true;
if (fd.ShowDialog() == DialogResult.OK)
{
try
{
if ((inputDataFile = fd.OpenFile()) != null)
{
inputData_exists = true;
// ... read input data from CSV file
using (CsvFileReader reader = new CsvFileReader(inputDataFile))
{
CsvRow row = new CsvRow();
while (reader.ReadRow(row))
{
foreach (string s in row)
{
Console.Write(s);
Console.Write(" ");
}
Console.WriteLine();
}
// ... close the input data stream
inputDataFile.Close();
}
}
}
catch (Exception err)
{
//Inform the user if can't read the file
MessageBox.Show(err.Message);
}
}
}
Все отлично работает, кроме следующего: Файл CSV содержит около 1200 строк кода.Когда этот код выполняется, окно OpenFileDialog () закрывается только частично, прежде чем содержимое файла csv начинает записываться в окно консоли.Итак, я могу видеть запись данных в консольное окно, и у меня есть небольшая прямоугольная часть диалогового окна, отображаемая в моей форме.Есть ли способ убедиться, что диалоговое окно закрыто до того, как данные будут записаны на консоль?Должен ли я открыть новую ветку для связи с консолью?Любой совет или помощь woulf будет принята с благодарностью.Спасибо.