我用process调用一个dos命令,但是这个dos命令是不能自己退出的。(比如说一个死循环在干一件事情),平时用的时候可以按 ctrl+C 退出,也可以关闭dos窗口结束。现在我想将其放入C#中运行,我设置了程序
 p1 = new Process();
            p1.StartInfo.FileName = "cmd.exe";           //設定程序名
            p1.StartInfo.Arguments = "/c " + "abc.exe";    //設定程式執行參數
            p1.StartInfo.UseShellExecute = false;        //關閉Shell的使用
            p1.StartInfo.RedirectStandardInput = true;   //重定向標準輸入
            p1.StartInfo.RedirectStandardOutput = true;  //重定向標準輸出
            p1.StartInfo.RedirectStandardError = true;   //重定向錯誤輸出
            p1.StartInfo.CreateNoWindow = false;          //設置顯示窗口
p1.Start();这样的话,abc启动时显示一个dos窗口,任务管理器中也可以看到这个进程。当程序执行到
p1.CloseMainWindow();
时,可以看到窗口关闭了,abc进程也消失了但是我不想在程序调用时显示这个讨厌的dos窗口,所以我在初始化时将
p1.StartInfo.CreateNoWindow = true;
可是这样的话,虽然不出现dos窗口了,但是执行
 p1.CloseMainWindow();
或 p1.kill() 或 p1.Close() 或 p1.Dispose() 等等都无法正常结束abc进程了,其在任务管理器中一直存在,并且作业依然在做!我该怎么处理,大家指点一下,谢谢!