Не удается получить прямой вывод из файла Python на vb.net с помощью ProcessStartInfo - PullRequest
0 голосов
/ 21 октября 2019

Привет, я знаю, что здесь уже есть один и тот же вопрос, но я попробовал каждый из них и не могу понять, почему он не работает.

Вот мой код

    Private Sub CallbackProcessAsync(sender As Object, args As System.Diagnostics.DataReceivedEventArgs)


        Console.WriteLine(args.Data)
        Me.Invoke(Sub() statusRichText.AppendText(args.Data & Environment.NewLine))

    End Sub




Sub SuperUpload()

    Dim oProcess As New Process()

    AddHandler oProcess.ErrorDataReceived, AddressOf CallbackProcessAsync
    AddHandler oProcess.OutputDataReceived, AddressOf CallbackProcessAsync

    Dim oStartInfo As New ProcessStartInfo("C:\Users\RKjetski\AppData\Local\Programs\Python\Python37\python.exe", "test.py " + vInfoIframe.Text + " " + vInfoID.Text)
    oStartInfo.UseShellExecute = False
    oStartInfo.CreateNoWindow = True
    oStartInfo.RedirectStandardError = True
    oStartInfo.RedirectStandardOutput = True


    oProcess.EnableRaisingEvents = True
    oProcess.StartInfo = oStartInfo
    oProcess.Start()

    oProcess.BeginErrorReadLine()
    oProcess.BeginOutputReadLine()

End Sub


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnSuperUpload.Click


    Dim thread = New System.Threading.Thread(AddressOf SuperUpload)
    thread.Start()
End Sub

Файл python

    import time
x = 0
while x < 5:
    print(x)
    time.sleep(2)
    x = x +1

Я получаю следующий вывод, но он не в реальном времени / в режиме реального времени, поле расширенного текста пусто до тех пор, пока не прочитает программу, а затем распечатает все сразу,0 1 2 3 4

...