【发布时间】:2021-03-22 19:28:35
【问题描述】:
我有一个在 C# 中实例化两个不同进程的应用程序。让他们成为 A 和 B。
通常,启动 A 会启动 B。由于特定版本的产品错误,对于该错误版本,我需要使用一种解决方法,即首先启动进程 B,然后在其之上处理 A。
在功能方面一切正常,但关闭 A 不会以这种方式关闭 B。因为当A进入时B最终没有窗口,所以关闭A后它不能很好地关闭(如果可以,我不会有这个问题)并且必须用任务管理器杀死。
有什么方法可以将两个 C# Process 对象绑定在一起,这样关闭 A 就会触发关闭 B?
注意:在我正在编写的应用程序中杀死它们不是一个选项,因为用户必须决定何时关闭 A & B 合奏
【问题讨论】:
-
您是在编译后的代码中解决这个问题,还是在调整“批处理”文件启动器进程以让 B 先启动。
-
@SqlSurfer 编译代码。
Process实例化.exes 的对象 -
如果 B 在 A 正在关闭时应该始终关闭,而不是向 B 添加代码,如果它没有看到 A 运行超过 10 秒,它会自行关闭。如果您必须将实例绑定在一起,而不是使用命令行参数或进程 ID 来了解启动另一个进程的那个“拥有”哪个。实际上使 A 和 B 都聪明。顶部的“窗口”句柄或进程 ID 可用作将它们联系在一起的 ID。我会研究一个管理所有这些的进程 C。 (详细信息 - .NET “经典”和 .NET 核心在启动进程时的行为略有不同。)
标签: c# process desktop-application