Member 13725714 Ответов: 2

Как я могу повторно проверить, работает ли процесс, и убить его, если это C# .NET (приложение windows form)


Итак, я хочу повторно проверить, работает ли процесс, и если да, то я хочу его убить. До сих пор я могу сделать это один раз во время выполнения, но пользователи могут запустить целевую программу (ту, которую я хочу убить) после того, как они запустят мою.

Что я уже пробовал:

Я уже пробовал
private void Form1_Load(object sender, EventArgs e)
{

    foreach (var process in Process.GetProcessesByName("TARGETPROGRAMNAME"))
    {
        process.Kill();
    }


Но это происходит только один раз при запуске программы, что означает, что они могут запустить целевую программу после моей.

Patrice T

Похоже, это плохое решение еще одной проблемы.

Dave Kreskowiak

Согласованный. Что-то подозрительное в этой просьбе. Плохое решение для любой проблемы.

#realJSOP

Ясно, что этот парень недостаточно опытен, чтобы писать код, поэтому я не уверен, где вы видите "подозрительное". Я не дал ему код, но дал ему выбор способов сделать это.

Dave Kreskowiak

"Подозрительно" то, что он действительно пытается сделать с этим? У меня такое чувство, что его опыт работы с окнами или любыми другими O/S на самом деле не так уж велик.

2 Ответов

Рейтинг:
2

#realJSOP

Самый простой способ-это настроить систему.Таймеры.Объект Timer должен тикать каждые n секунд и помещать свой код в обработчик событий tick.

Или вы можете использовать TPL.

Или же вы могли бы использовать System.Reactive.

Или вы можете использовать обычные потоки.


Рейтинг:
0

Ron Anders

Лемми Угадай, вы все хотите убить Диспетчера задач.


Patrice T

Является ли это решением ?