Каково различие между Процессом и ProcessStartInfo в C#?

Между чем различие 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);
13
задан Ry- 11 August 2017 в 06:31
поделиться

2 ответа

Они довольно близки к одному и тому же, оба относятся к классу Process. И на самом деле есть 4 других перегрузки для Process.Start , кроме упомянутых вами, все статические.

Один из них - это статический метод . Он возвращает объект Process, представляющий запущенный процесс. Вы можете, например, запустить процесс с помощью одной строчки кода, используя этот способ.

А другой способ сделать это методом-членом , который повторно использует текущий объект вместо того, чтобы возвращать новый.

7
ответ дан 2 December 2019 в 01:20
поделиться

Хех.

Если вы внимательно посмотрите на свой код, вы заметите, что оба они используют одни и те же классы. Свойство StartInfo в вашем первом примере, естественно, является ProcessStartInfo . Во втором примере вы вызываете статический метод .Start для класса Process .

Так в чем же различия? Существенный. Это разные классы. Один предназначен для запуска процессов, второй - для указания, какой процесс запускать (и множество других мелочей, таких как захват вывода и т. Д.). В первом случае вы просто используете свойство по умолчанию ProcessStartInfo , которое имеет класс.

3
ответ дан 2 December 2019 в 01:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: