2009-11-30 93 views
0

我有一个处理对象的设置如下所示:获取一个进程终止

Process p = new Process(); 
p.StartInfo.FileName = command; 
p.StartInfo.UseShellExecute = true; 
p.StartInfo.Arguments = String.Format(
    commandArguments, 
    destinationLocation, 
    sourceLocation, 
    sourceDirName, 
    (string.IsNullOrEmpty(revisionNotes.Text)) ? "" : revisionNotes.Text); 

(其中未定义的值被从外部提供给该代码和是有效的)。有问题的进程启动并正确执行p.Start();,但我需要终止它。控制台窗口短暂闪烁并消失,这似乎表明该过程已完成,但没有任何相关事件被触发(OutputDataRecieved,Exited等),并且它就像过程永远不会结束。 (我试图用一些参数来执行一个lua脚本,如果这是相关的)。有人能帮我让这个过程正确地停止吗?

回答

2

你有过程的EnableRaisingEvents属性设置为True?没有它,你将无法赶上Exited事件。

+0

不知道这个,谢谢!我会试试看! – RCIX 2009-11-30 08:46:06

+0

男孩是一个愚蠢的国旗(至少对我来说),但感谢您的帮助,这可能是我想要的! – RCIX 2009-11-30 08:47:00

+0

Darin的方法通常更合适,除非你想在等待过程结束时做其他事情。 – MartW 2009-11-30 09:01:05