.netで指定したプロセスを再起動する

以下のコードで指定したプロセスを再起動できる。

private void RestartProcess(string sProcessName)
{
    System.Diagnostics.Process[] oProcessAry =
        System.Diagnostics.Process.GetProcesses();

    foreach (System.Diagnostics.Process oProcess in oProcessAry)
    {
        if (oProcess.ProcessName == sProcessName)
        {
            string sFile = oProcess.MainModule.FileName;
            oProcess.CloseMainWindow();
            oProcess.WaitForExit();
            System.Diagnostics.Process.Start(sFile);
            return;
        }
    }
}