这个代码我始终詷用时不回显文本,请专家帮我解答,被上传的程序我已经上传到了百度

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Task.Factory.StartNew(Sub()
Try
If CmdProcess Is Nothing Then
CmdProcess = New Process()
End If

                                  CmdProcess.StartInfo.FileName = "cmd" ' 命令
                                  'CmdProcess.StartInfo.Arguments = "" ' 参数

                                  CmdProcess.StartInfo.CreateNoWindow = True        ' 不创建新窗口  
                                  CmdProcess.StartInfo.UseShellExecute = False
                                  CmdProcess.StartInfo.RedirectStandardInput = True   ' 重定向输入
                                  CmdProcess.StartInfo.RedirectStandardOutput = True   ' 重定向标准输出
                                  CmdProcess.StartInfo.RedirectStandardError = True
                                  CmdProcess.StartInfo.RedirectStandardError = True ' 重定向错误输出
                                  CmdProcess.Start()

                                  CmdProcess.StandardInput.WriteLine("cd\")
                                  CmdProcess.StandardInput.WriteLine("c:")
                                  CmdProcess.StandardInput.WriteLine("cd " & Directorypath("ETH"))

                                  CmdProcess.StandardInput.WriteLine("EthDcrMiner64.exe -epool eth.f2pool.com:8080 -ewal 0x73c94d5387c1ccb97ff9fdfeca0ec16af5aa96ad   ")


                                  While True
                                      Dim hhh As String = CmdProcess.StandardOutput.ReadLine

                                      Me.Invoke(Sub()
                                                    TextBox1.AppendText(hhh & vbLf)
                                                End Sub)
                                  End While








                              Catch ex As Exception

                              End Try
                          End Sub)

                                                        程序中被调用的外部程序在https://pan.baidu.com/s/1nxopIlz。谢谢

先单独执行下,看看有没有输出。加上CmdProcess.StartInfo.WorkingDirectory当前工作路径看看

我用ping来试的,没用你的矿机试,因为各种报毒。
你原来的代码是无法实时输出的,必须要等程序退出之后才有输出。要想获取实时输出需要通过事件实现。
你可以自己试一下矿机。

     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Task.Factory.StartNew(
            Sub()

                Try
                    If CmdProcess Is Nothing Then
                        CmdProcess = New Process()
                    End If

                    With CmdProcess.StartInfo
                        .FileName = "cmd" ' 命令

                        .CreateNoWindow = True        ' 不创建新窗口  
                        .UseShellExecute = False
                        .RedirectStandardInput = True   ' 重定向输入
                        .RedirectStandardOutput = True   ' 重定向标准输出
                        .RedirectStandardError = True ' 重定向错误输出
                    End With

                    CmdProcess.EnableRaisingEvents = True
                    AddHandler CmdProcess.OutputDataReceived, AddressOf Process_OutputDataReceived
                    AddHandler CmdProcess.ErrorDataReceived, AddressOf Process_OutputDataReceived

                    With CmdProcess
                        .Start()

                        CmdProcess.StandardInput.WriteLine("D:")
                        CmdProcess.StandardInput.WriteLine("cd " & Directorypath("ETH"))
                        CmdProcess.StandardInput.WriteLine("EthDcrMiner64.exe -epool eth.f2pool.com:8080 -ewal 0x73c94d5387c1ccb97ff9fdfeca0ec16af5aa96ad   ")
                        .BeginOutputReadLine()

                        .WaitForExit()
                    End With
                Catch ex As Exception

                End Try
            End Sub)

    End Sub
    Sub Process_OutputDataReceived(sender As Object, e As DataReceivedEventArgs)
        Invoke(
            Sub()
                TextBox1.AppendText(e.Data & vbLf)
            End Sub)
    End Sub

路径问题,用cmd先试试看

你没发现你下面是个死循环吗?cpu都被你占用完了你的UI线程处于假死状态,既然你使用了invoke进行回调,那么应该开线程去处理,永远不要在UI线程里面使用 While True,如果必须使用一定要Sleep()一下。另外你在UI线程里面给输入框赋值的话根本不用Me.invoke,没有这个必要,没有跨线程调用直接给输入框赋值就可以了