【发布时间】:2016-12-05 12:56:21
【问题描述】:
我使用 c# 进程类打开一个没有 GUI 的单独应用程序。这是一个 c++ 项目,我使用 Process.Kill() 来结束它。问题是这并没有给它一个机会来完成它的行动。 Process.Close() 只是在我的主应用程序中释放对象并让单独的应用程序运行。
让这个过程优雅地结束的最好方法是什么?
【问题讨论】:
-
该类应该有一个 Dispose() 方法,该方法执行清理并关闭任何需要关闭(或停止运行)的对象。
-
我认为你不应该使用 Process.Kill()。而是在两个应用程序之间发送消息(udp...),并在完成其操作时终止。
-
@jdweng 你知道你说的和主题无关吗?
-
@Sam 这里最重要的问题是:C++ 项目也是你的项目吗?您有权访问源代码吗?如果您可以修改该工具:进程间通信有许多选项,从通过 TCP 通信到命名管道的 UDP 通信开始。如果在过去发现设计我的工具很容易,那么我可以通过标准输入向它们发送命令。然后,在 C# 中,将“关闭”命令写入工具的标准输入,以便工具知道它应该退出。