如果标准输入存在,如何捕获标准输入而不等待它?

时间:2016-02-13 03:43:14

标签: c# command-line-arguments stdin

我有一个C#命令行应用程序。如果提供,我需要捕获标准输入。如果没有,应该开始执行。

我玩过各种各样的组合:

Console.OpenStandardInput()
Console.ReadLine()
Console.In.Peek()

所有人都阻止,等待输入。这不是我想要的。标准输入应该是可选的。如果没有提供,程序应该在没有它的情况下启动而不等待它。

1 个答案:

答案 0 :(得分:3)

我想我找到了它。这在.NET 4.5中显然是新的

if (Console.IsInputRedirected)
{
    using (var reader = new StreamReader(Console.OpenStandardInput(), Console.InputEncoding))
    {
       _stdin = reader.ReadToEnd();
    }
}