Действительно ли использование GetProcessesByName является лучшим способом проверить, работает ли процесс?

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

У меня есть приложение, которое похоже на список контактов Outlook. Это получает все контакты от Outlook, и результат состоит в том, что они отображены в представлении сетки данных. Теперь, вместо стартового Outlook каждый раз, когда мое приложение открывается и завершение работы его, я хочу, чтобы оно не открылось, когда это уже открыто, и останьтесь открытыми, когда мое приложение закрывается, и у пользователя уже было выполнение Outlook. Вот мое использование:

Process[] pName = Process.GetProcessesByName("OUTLOOK");
if (pName.Length == 0)
{
    MessageBox.Show("Outlook is not running."); // Open Outlook anew.
}
else
{
    MessageBox.Show("Outlook is running."); // Do not re-open Outlook.
}

Действительно ли это - лучший и самый безопасный способ сделать его?Заранее спасибо.

9
задан Fusyion 22 June 2010 в 21:58
поделиться