Мне нужно перехватывать сообщения, поступающие от скрипта Python во время его работы. Следующее захватывает ответ после завершения процесса.
private void BW_DoWork(object sender, DoWorkEventArgs e)
{
ProcessStartInfo start = (ProcessStartInfo) e.Argument;
using (Process process = Process.Start(start))
{
using (StreamReader reader = process.StandardOutput)
{
string stderr = process.StandardError.ReadToEnd(); // Here are the exceptions from our Python script
string result = reader.ReadToEnd(); // Here is the result of StdOut(for example: print "test")
e.Result = stderr + " >> " + result;
TxtPrompt.Invoke((MethodInvoker)delegate {
TxtPrompt.Text = stderr + " >> " + result;
});
//TxtPrompt.AppendText(stderr);
//TxtPrompt.AppendText(Environment.NewLine);
//TxtPrompt.AppendText(result);
//TxtPrompt.AppendText(Environment.NewLine);
}
}
}
Следующий скрипт Python печатает от 0 до 9 с интервалом в 1 секунду.
import time
for x in range(500):
print(x)
time.sleep(0.05)
Как я могу печатать числа во время печати? Текущий метод (приведенный выше) показывает все сразу в конце скрипта.
Любая помощь приветствуется.