如何在 C# 中将两个进程的生命周期联系在一起?

问题描述

我有一个应用程序,它在 C# 中实例化两个不同的进程。让他们成为 A 和 B。

通常,启动 A 会在幕后启动 B。由于特定版本的产品错误,对于该错误版本,我需要使用基于先启动进程 B 然后在其上启动进程 A 的解决方法

功能方面一切正常,但关闭 A 不会以这种方式关闭 B。因为 B 在 A 发挥作用时最终没有窗口,所以在关闭 A 后它不能很好地关闭(如果可以,我就不会有这个问题),必须用任务管理器杀死。

有什么办法可以将两个 C# Process 对象联系在一起,以便关闭 A 会触发关闭 B?

注意:在我正在编写的应用程序中杀死它们不是一种选择,因为用户必须决定 A & B 合奏何时关闭

解决方法

您可以使用进程间通信技术和类,例如命名系统互斥锁、EventWaitHandle、套接字等。可以在另一个{{3} }

public EventWaitHandle (bool initialState,System.Threading.EventResetMode mode,string? name,out bool? createdNew);

姓名 细绳 名称,如果同步对象要与其他进程共享;否则,为 null 或空字符串。名称区分大小写。