C# Проверка запущенного процесса по PID

myweb101

Client
Регистрация
29.04.2013
Сообщения
175
Благодарностей
30
Баллы
28
Здравствуйте, очень часто plink падает, написал проверку по pid. Я все верно написал?

Код:
string Results = "";
int pid = Convert.ToInt32(project.Variables["pid_plink_server"].Value);
Process psi = new Process();
try
{
    psi = System.Diagnostics.Process.GetProcessById(pid);
    Results = "Процесс запущен";
}
catch (ArgumentException)
{
    Results = "Процесс не запущен";
}
catch (InvalidOperationException ex)
{
   Results = ex.Message; // другие ошибки

}
return Results;
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
PID может повторяться, поэтому по нему проверять нет смысла, у тебя может открыться три инстанстанса с одинаколвым PID и какой висит ты не обнаружишь, есть папочка одна по которой инстанс можно проверить и грохнуть если он завис
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
PID может повторяться, поэтому по нему проверять нет смысла, у тебя может открыться три инстанстанса с одинаколвым PID и какой висит ты не обнаружишь, есть папочка одна по которой инстанс можно проверить и грохнуть если он завис
Глупости говоришь. В единый момент времени не может быть несколько процессов с единым идентификатором.

Я все верно написал?
Чисто на взгляд - да, верно.
 
  • Спасибо
Реакции: Trader1985 и myweb101

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Глупости говоришь. В единый момент времени не может быть несколько процессов с единым идентификатором.
Глупость тут в том что ты даже не проверял вот в 5 потоков с одинаковыми пидами
2017-04-11_200257.png
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Уважаемый, ты понимаешь разницу между потоками и процесами? Разберись, а потом делись откровениями...
Да просмотрел моя вина, чёт я подумал о PID инстанса, только вот не понимаю при чём потоки и процессы ?
 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
Может быть сотня потоков от одного процесса с одним пидом..
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
Может быть сотня потоков от одного процесса с одним пидом..
это как я понимаю именно то что указывается "сколько потоков на базу"? База - это процесс, а потоки это потоки в этом процессе и у каждого потока может быть одинаковый пиД, а процессы (базы) не могут иметь одинаковый пиД ?


 

DmitryAk

Client
Регистрация
14.12.2016
Сообщения
860
Благодарностей
824
Баллы
93
это как я понимаю именно то что указывается "сколько потоков на базу"? База - это процесс, а потоки это потоки в этом процессе и у каждого потока может быть одинаковый пиД, а процессы (базы) не могут иметь одинаковый пиД ?
База это процесс и у него есть пид. Все дочерние потоки принадлежат этому процессу и у них тот же пид, но у каждого потока есть свой thread айди.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)