Здравствуйте!
Недавно начал работать с потоками и наткнулся на один глюк, подскажите если не прав:
Const FileName As String = "C:\proga.exe"
Private _Process As Process
Private _ProcessStartInfo As New ProcessStartInfo(FileName, "")
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
_ProcessStartInfo.UseShellExecute = False
_ProcessStartInfo.RedirectStandardInput = True
_ProcessStartInfo.RedirectStandardOutput = True
_Process = Process.Start(_ProcessStartInfo)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim strTemp As String = ""
Application.DoEvents()
strTemp = _Process.StandardOutput.ReadToEnd()
MsgBox(strTemp)
End Sub
Дело в том, что эта proga.exe коннектится к серверу, и пишет в stdout то, что она получила от сервера, и пишет она в stdout каждый раз, когда получает что-то от этого сервера, и мне надо обрабатывать это...Причем сразу же ( или почти сразу же), как это появилось в StdOut'е. Как я понял, функции StandardOutput.Read* ,не найдя ничего в буфере, запускают цикл, выходя из него только тогда, когда в буфере что-то появится(или когда proga.exe убьется), при жтом вся моя программа зависает... Может, кто подскажет, как обойтись без цикла?
Заранее спасибо!
P.S. Извините за кривой русский