代码之家  ›  专栏  ›  技术社区  ›  JimDel

C中的process和processStartInfo有什么区别?

  •  12
  • JimDel  · 技术社区  · 16 年前

    两者有什么区别 Process ProcessStartInfo ?我以前都是用来启动外部程序的,但肯定有两种方法可以实现。这里有两个例子。

    Process notePad = new Process();
    notePad.StartInfo.FileName = "notepad.exe";
    notePad.StartInfo.Arguments = "ProcessStart.cs";
    notePad.Start();
    

    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "notepad.exe";
    startInfo.Arguments = "ProcessStart.cs";
    Process.Start(startInfo);
    
    2 回复  |  直到 9 年前
        1
  •  7
  •   Brian R. Bondy    16 年前

    它们几乎相同,都来自进程类。实际上 4 other overloads to Process.Start 除了你提到的,一切都是静态的。

    一个是 static method 这样做的方法。它返回表示已启动进程的进程对象。例如,您可以使用这种方法用一行代码启动一个流程。

    另一个是 member method 方法:重用当前对象而不是返回新对象。

        2
  •  3
  •   Chau    9 年前

    呵呵。

    如果仔细观察代码,您会注意到它们都使用相同的类。这个 StartInfo 在第一个示例中,不确定的是,属性是 ProcessStartInfo . 在第二个示例中,您调用静态 .Start 方法 这个 Process 班级。

    那么有什么区别呢?意义重大。他们是不同的阶级。一个是启动进程,一个是说要启动哪个进程(还有许多其他的小事情,比如捕获输出等)。在第一种情况下,只使用默认值 进程开始信息 类具有的属性。