首页 > 解决方案 > 如何在 C# 中将两个进程的生命周期联系在一起?

问题描述

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

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

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

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

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

标签: c#processdesktop-application

解决方案


您可以使用进程间通信技术和类,如命名系统互斥锁、 EventWaitHandle、套接字等。可以在另一个stackoverflow 页面上找到非常相似的问题和解决方案

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

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


推荐阅读