2014-12-11 2 views
10

У меня есть код, который запускает процесс, используя Process.Start(ProcessStartInfo). Из документации видно, что этот метод может возвращать значение null, если существующий процесс используется повторно.Когда процесс Process.Start() возвращает null?

[] Возвращает новый компонент процесса, который связан с процессом ресурса, или нулевое значение, если не будет запущен ни один ресурс процесса (например, если существующий процесс повторно).

Что означает повторное использование существующего процесса и при каких обстоятельствах это произойдет?

ответ

10

Это произойдет, если вы вызовете передать файл (а не EXE), и файл настроен на запуск с использованием DDE.

Например, приложения Office открывают файлы в существующих экземплярах.

+0

Я задавался вопросом, было ли это что-то в этих строках, поэтому я написал следующий тестовый код: 'var processStartInfo = new ProcessStartInfo (@" C: \ test.doc "); var process1 = Process.Start (processStartInfo); var process2 = Process.Start (processStartInfo); ' process2 не был нулевым, хотя только один экземпляр документа был открыт в одном экземпляре Word. Это зависит от платформы или версии? – fractor

+0

Я только что попробовал это с файлом xlsx. process2 был null. Благодарю. – fractor

Смежные вопросы