Недопустимое операционное исключение из класса процесса C#

Выезд LiquiBase для руководящих изменений базы данных с помощью управления исходным кодом.

17
задан Drew Noakes 3 June 2018 в 20:04
поделиться

3 ответа

Вы действительно запустили процесс, когда был сделан снимок отладчика? Это снимок экрана, который я ожидал увидеть перед вызовом метода Start () .

Обратите внимание, что общий шаблон - создать ProcessStartInfo , заполнить его и затем вызвать статический метод Process.Start (startInfo) . Это упрощает концептуально: вы не видите объект Process , пока он не будет запущен.

33
ответ дан 30 November 2019 в 12:01
поделиться

Да, это ожидаемое поведение, и оно также четко задокументировано в MSDN.

Например, свойство Process.BasePriority может вызвать исключение InvalidOperationException, когда процесс завершился или процесс не был запущен (подробнее см. В MSDN ).

1
ответ дан 30 November 2019 в 12:01
поделиться

Многие свойства помечены как InvalidOperationException, потому что до тех пор, пока вы не запустите процесс. Объект myProcess не связан ни с одним запущенным процессом и, следовательно, не может получить информацию.

Попробуйте добавить эти операторы после кода для запуска процесса

if (myProcess != null)  
{
  myProcess.WaitForExit();
   //or any other statements for that matter
}

Теперь, когда вы находитесь внутри оператора if, VSTS отладчик сможет отображать большинство свойств, связанных с объектом myProcess. Это происходит потому, что объект myProcess теперь связан с запущенным процессом «IExplore.exe».

1
ответ дан 30 November 2019 в 12:01
поделиться
Другие вопросы по тегам:

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