【问题标题】:Why is the Process class in the Diagnostics namespace?为什么 Process 类在 Diagnostics 命名空间中?
【发布时间】:2010-12-05 19:50:34
【问题描述】:

为什么 Process 类是 Diagnostics 命名空间的一部分?

这是 BCL 设计的一部分,这让我想了一段时间。我觉得这有点违反直觉,我看不到 Process 与例如 Debug 和 Trace 类之间的联系。

【问题讨论】:

  • +1 有趣的问题。
  • 刚开始时,我总是不记得在哪里可以找到这门课。当您想要启动外部应用程序时,诊断并不是首先想到的。
  • +1 Snarfblam。我总是尝试查看 System.Runtime
  • @Snarfblam 输入类名“Process”并按“Ctrl+”。它会为你导入命名空间:)

标签: .net namespaces fcl


【解决方案1】:

进程类不仅仅代表单个进程。它有大量关于计算机上正在运行的进程的信息。此信息可用于查找问题或仅获取有关系统状态的一般信息。

您可以在此处查看诊断名称空间描述: http://msdn.microsoft.com/en-us/library/system.diagnostics.aspx

以及这里的流程类描述: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

【讨论】:

  • 是的,好点。我知道信息功能,但倾向于将 Process 主要视为 .Start() 的工具。
  • 这是一个令人满意的理由将它隐藏在诊断名称空间中吗?毕竟 Process 类允许您实例化新进程并访问标准输入、输出和错误流。这些几乎不是诊断功能。
  • imo 下面的答案给出了更完整和深思熟虑的推理,并且更有意义。流程类有很多诊断功能,设计者不想将类拆分到多个命名空间。
【解决方案2】:

好吧,根据the documentation,“System.Diagnostics 命名空间提供了允许您与系统进程、事件日志和性能计数器交互的类。”所以我想根据定义它很合适。 :-)

但是,是的,通过将其放在更明显与诊断相关的事物(跟踪、性能计数器)旁边,这似乎有点像术语的重载。

不过,我会说 Process 类与监视正在运行的进程一样重要,因为它与启动新进程有关。监测通常被认为是一种诊断活动。此外,如果框架将与同一项目相关的功能拆分到不同的命名空间中,则对大多数程序员来说可能不太直观。所以我可以看到在这里包含它的逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2015-11-13
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 2013-11-18
    相关资源
    最近更新 更多