我有一個小的Windows窗體應用程序需要能夠運行一個外部應用程序無限次數,而不必在每次運行後關閉該應用程序。Windows窗體 - 反覆運行一個外部進程
外部應用程序作爲單個實例運行,非常耗費資源並且加載速度很慢。的基本工作流程如下:
1:等待觸發加載外部應用 2:觸發凸起,使用命令行參考打開外部應用 3:監視一個日誌文件 3:外部應用進程在命令行中的數據,並寫入日誌文件 4:日誌文件更改,所以下一個命令行發送到(打開)外部應用 5:轉至步驟3
我的問題是,我無法找到一個加載外部應用程序的方式,而不必先關閉/終止進程。
applicationProcess.StartInfo.FileName = commandLine;
applicationProcess.Start();
// Watch for change in log file and then...
applicationProcess.StartInfo.FileName = commandLine;
applicationProcess.Start();
等,但如果我不
applicationProcess.Kill();
之前,我再次發出applicationProcess.Start()方法,我得到一個線程異常。
我認爲我需要做的是從applicationProcess一旦開始就斷開連接,但是找不到任何機制來做到這一點。
任何意見/方向將不勝感激。
謝謝。
是的,如果我爲每個調用創建一個新的ProcessObject它似乎工作,但我擔心如何將無限數量的過程對象添加到正在運行的應用程序,因爲我認爲這些將消耗內存/資源,即使目標應用程序仍然是一個實例。 – Neilski 2011-04-29 14:40:37
是的,但是這種設計不是固有的問題,您需要反覆運行沉重的應用程序?也許你應該認爲整個概念結束了。 – LueTm 2011-04-29 16:07:20
@Neilski,您可以隨時瀏覽列表,並Dispose()您將不再使用的任何過程對象。 – Eric 2011-04-29 17:52:18