为什么Process类在诊断命名空间中?

39

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

这是BCL设计的一部分,让我感到困惑已经有一段时间了。我认为这有点违反直觉,我看不出Process和Debug、Trace类之间的联系。


2
早期我总是记不住在哪里找到这个类。当你想要启动外部应用程序时,诊断并不是首先想到的事情。 - snarf
1
+1 Snarfblam。我总是尝试查找System.Runtime。 - Steven Evers
@Snarfblam 输入类名“Process”,然后按“Ctrl +。”,它会为您导入命名空间 :) - Despertar
2个回答

25

根据文档,"System.Diagnostics命名空间提供了允许您与系统进程、事件日志和性能计数器交互的类。" 所以从定义上来说,它适合这个范畴。

但是,将它与更明显与诊断相关的事物(跟踪、性能计数器)放在一起,似乎有点过于使用术语的重复性。

不过,我认为Process类与监控运行中进程的活动一样重要,也同样属于诊断活动。此外,如果框架将与同一项相关的功能分散到不同的命名空间中,对大多数程序员来说可能不太直观。因此,我可以理解将其包含在此处的逻辑。


13

是的,说得好。我知道信息函数,但我更倾向于将进程视为.Start()的载体。 - H H
8
把它放在诊断命名空间里是个满意的理由吗?毕竟,Process类允许你实例化新进程并访问标准输入、输出和错误流。这些都不是诊断功能。 - AnthonyWJones
3
以下答案提供了更完整、经过深思熟虑的推理,并且更合理。Process类具有许多诊断功能,设计师不想将这个类分割成多个命名空间。 - Scott M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接