RichTextbox中显示的实时输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RichTextbox中显示的实时输出相关的知识,希望对你有一定的参考价值。

是否有人可以帮助我在进程终止之前从控制台输出中读取。

我有一个第三方控制台应用程序,他的应用程序可能不会在每行后刷新数据,我无法读取。

有没有其他方法,而不是使用像Shell这样的进程或使用任何Windows API在运行时从控制台读取数据?

这是我的代码:

Private Sub StartMiner()

        MinerProcess = New Process

        MinerProcess.StartInfo.CreateNoWindow = False
        MinerProcess.StartInfo.FileName = "abc.exe"
        MinerProcess.StartInfo.UseShellExecute = False
        MinerProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
        MinerProcess.StartInfo.RedirectStandardOutput = True
        MinerProcess.StartInfo.RedirectStandardError = True
        MinerProcess.EnableRaisingEvents = True
        MinerProcess.StartInfo.Arguments = "--server abc"

        MinerProcess.BeginOutputReadLine()
        MinerProcess.BeginErrorReadLine()

        MinerProcess.Start()
        MinerProcess.WaitForExit()

End Sub

Private Sub MinerProcess_OutputDataReceived(sender As Object, e As DataReceivedEventArgs) Handles MinerProcess.OutputDataReceived

        If Me.InvokeRequired Then
            Me.BeginInvoke(CType(Sub()
                                     RichTextBox1.Text = RichTextBox1.Text & e.Data & Environment.NewLine
                                 End Sub, MethodInvoker))
        Else
            RichTextBox1.Text = RichTextBox1.Text & e.Data & Environment.NewLine
        End If

End Sub

此外,我尝试使用Read,BeginRead,Readline,ReadtoEnd,但没有任何工作,因为我需要。所有方法都有效,但在终止进程时显示输出,并且控制台文件是长时间运行的进程,因此无法关闭并重新打开以获取输出。

以上是关于RichTextbox中显示的实时输出的主要内容,如果未能解决你的问题,请参考以下文章

在字符串输出中显示“”

如何在 Resharper IntelliSense 中显示所有 Visual Studio 代码片段?

从richtextbox逐行读取并显示在标签中(vb.net)

禁用 RichTextBox 中的滚动(c#)

永远观察实时数据的片段

c#如何让richtextbox某一行以红色字体显示