Можно ли получать данные из процесса в реальном времени на C#? И если можно то как?
У меня написана программа на python которая парсит сайт и сразу создаёт базу данных с этими данными. из этой проги я сделал exe файл и запускаю его следующим образом:
process.StartInfo.FileName = "C:\\Users\\user\\PycharmProjects\\pythonProject2\\dist\\main\\main.exe";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
Вывожу данные вот так:
process.OutputDataReceived += (s, e) => Console.WriteLine(e.Data);process.BeginOutputReadLine();
И ещё вот так пробовал:
StreamReader reader = process.StandardOutput;
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
Console.WriteLine(line);
}
process.WaitForExit();
И еще было несколько странных вариантов. В принципе вывод вроде работает, но в программе на python после каждой странички которую она спарсила через print выводится счетчик (print(f"Спарсил {all_links.index(link) + 1} страниц...")
), который должен так же выводится и при запуске этого скрипта из C#. Но в действительности я просто жду пока сайт допарсится полностью, а потом получаю все выводимые данные разом.
Дак вот вопрос. Как мне динамически получать выводимые данные из процесса и сразу выводить их в консоль или куда угодно ещё, а не ждать завершения этого процесса до конца?