【问题标题】:Am I supposed to dispose redirected StandardOutput/StandardError我应该处理重定向的 StandardOutput/StandardError
【发布时间】:2011-06-06 22:45:43
【问题描述】:

如果我在创建Process 对象时重定向StandardOutput/StandardError,我是否应该在不再需要Process 对象时处置StreamReaders?使用反射器,我发现 Process.Dispose() 并没有为我做这件事(除非我遗漏了什么)。

【问题讨论】:

    标签: .net process


    【解决方案1】:

    是的,流程对象处理其自己的读取器及其底层流。重定向输出检索读取器实例,但底层流仍由自动处理的 processinfo 管理,因此不,您不需要处理读取器。

    【讨论】:

    • @Teoman - 我有点困惑,我的班级没有实例化读者。重定向标准输出/输入是 ProcessStartInfo 类中的一个选项。如果我设置 ProcessStartInfo.RedirectStandardOutput = true 并使用该 ProcessStartInfo 启动一个进程,那么 Process 对象会自动为我创建 StreamReaders。
    • SFun28,刚刚做了一点测试并更新了答案。事实证明,处置阅读器是不必要的,因为它实际上处置了底层流。使用重定向的输出,您已经在读取重定向的内部流,该流与进程一起自动关闭。
    • 酷!你能澄清一下“processinfo”是什么吗?您是指 Process 对象吗?
    • 是的过程对象,很抱歉含糊不清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多