2009-11-30 86 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