重定向标准输出,但仍然出现标准输出

时间:2014-12-16 09:56:44

标签: c# process

我正在使用Process.Start生成一些子进程。我的进程和子进程都是控制台应用程序。子进程的stdout显示在父控制台窗口中。为了避免这种情况,我重定向了stdout,但输出仍然出现。我的设置如下:

        var proc = Process.Start(new ProcessStartInfo
        {
            RedirectStandardInput = true,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            FileName = filename,
            Arguments = args,
            CreateNoWindow = false
        });
        var stderr = proc.StandardError.ReadToEndAsync();
        var stdout = proc.StandardOutput.ReadToEndAsync();
        var stdin = proc.StandardInput.WriteAsync(stdintext).ContinueWith(something => proc.StandardInput.Close());
        proc.WaitForExit();
        Task.WaitAll(stderr, stdout, stdin);
        // Process output

我不会将stdout写入我自己的stdout,但它仍然出现在父控制台中。这似乎只发生在某些子进程而非其他进程中。我没有在这里运行工具的源代码。如何阻止此输出发生?

0 个答案:

没有答案