我有一个小的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