c# - 如何在 C# 中将两个进程的生命周期联系在一起?
问题描述
我有一个在 C# 中实例化两个不同进程的应用程序。让他们成为A和B。
通常,启动 A 会在后台启动 B。由于特定版本的产品错误,对于该错误版本,我需要使用基于首先启动进程 B 然后在其之上处理 A 的解决方法。
在功能方面一切正常,但关闭 A 不会以这种方式关闭 B。因为当 A 起作用时 B 最终没有窗口,所以在关闭 A 后它不能很好地关闭(如果可以,我不会有这个问题)并且必须用任务管理器杀死。
有什么办法可以将两个 C#Process
对象绑定在一起,以便关闭 A 会触发关闭 B?
注意:在我正在编写的应用程序中杀死它们不是一种选择,因为用户必须决定何时关闭 A & B 合奏
解决方案
您可以使用进程间通信技术和类,如命名系统互斥锁、 EventWaitHandle、套接字等。可以在另一个stackoverflow 页面上找到非常相似的问题和解决方案
public EventWaitHandle (bool initialState, System.Threading.EventResetMode mode, string? name, out bool? createdNew);
name String 名称,如果要与其他进程共享同步对象;否则为 null 或空字符串。名称区分大小写。
推荐阅读
- r - 如何在 r 中的单独坐标列表中找到最近的位置?
- pandas - 屏蔽数据集以使 Xarray 中的维度相同(使用 where 函数)
- bash - 要从 Deep Archive/Glacier 检索的 AWS 文件列表
- sql - 在 SQL 中加入最近的日期
- python - 如何在没有扩展名的目录中打印文件?PYTHON
- kubernetes - 在 k8s PersistentVolume 清单文件下定义 claimRef 时命名空间是强制性的吗?
- python - 正则表达式替换多个“AND NOT”条件
- c++ - C++ 编译和链接问题
- json - 没有使用 RestTemplate 获得外部 Json API 响应
- reactjs - NextJS 动态导入问题