首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测Console.ReadLine()

检测Console.ReadLine()
EN

Stack Overflow用户
提问于 2017-03-23 00:23:03
回答 1查看 588关注 0票数 1

以下场景:

我有一个包含以下代码的控制台应用程序:

代码语言:javascript
运行
复制
static void Main(string[] args)
{
      // Some code.
      Console.WriteLine("Done");
      Console.ReadLine();
}

成功构建应用程序并生成"Test.exe“。

现在,我有了另一个执行生成的exe的控制台应用程序。

代码语言:javascript
运行
复制
static void Main(string[] args)
        {
            var processStartInfo = new ProcessStartInfo("Test.exe")
            {
                UseShellExecute = false,
                RedirectStandardOutput = true
            };

        // Setup the process
        process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };

        process.OutputDataReceived += ProcessOnOutputDataReceived;
        process.Start();
        process.BeginOutputReadLine();
        // Detect here if application is completed.
        }

        Console.ReadLine();
    }

    private static void ProcessOnOutputDataReceived(object sender, DataReceivedEventArgs dataReceivedEventArgs)
    {
        Console.WriteLine(dataReceivedEventArgs.Data);
    }

当我执行上面的代码时,它调用"Test.exe“,"Test.exe”的输出显示在当前进程的控制台窗口中。

"Test.exe“在"Console.ReadLine()”处等待输入,当前进程等待"Test.exe“完成。

是否可以检测到"Test.exe“是否正在等待当前进程中的输入?

EN

回答 1

Stack Overflow用户

发布于 2017-03-23 00:31:41

有没有同步调用OutputReadLine()的方法?如果是,那么您的应用程序将被阻塞,直到test.exe完成,然后才会执行您的下一行代码。就不需要检查了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42957409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档