質問です。
以下のようなコードを書いたのですが、

//test.exeが実行中で、それが終了したらファイルを消す
Process[] p = Process.GetProcessesByName("test");
if (p.Length > 0)
{
    for (int i = 0; i < p.Length; i++)
    {
        if (p[i].StartInfo.FileName.Equals(Application.StartupPath + "\\test.exe"))
        {
            p[i].WaitForExit();
            break;
        }
     }
}
File.Delete(Application.StartupPath + "\\test.exe");

このように終了するまで待ってからファイルを消しても数秒後にtest.exeが復活してしまいます。
これを回避するにはどうしたらいいでしょうか?