如何将自定义事件/信号从一个进程发送到 MacOS 中的另一个进程
Posted
技术标签:
【中文标题】如何将自定义事件/信号从一个进程发送到 MacOS 中的另一个进程【英文标题】:How to send a custom event/signal from on process to another process in MacOS 【发布时间】:2021-12-15 15:45:21 【问题描述】:我有两个 MacOS 应用程序都是由 QT (c++) 编写的。 B 应用程序处理一些数据并将结果存储在文件或共享内存中,一旦完成,应用程序A 将使用此结果并继续前进。
我的问题是当B完成数据处理后,如何通知A?一种愚蠢的方法是让 A 不断检查输出文件或共享内存。但实际上我想要更优雅的解决方案,在 Windows 中,我可以使用 SendMessage 之类的系统 API 向 A 发布自定义消息,并且 A 会覆盖 QT 函数 nativeEvent 处理消息并走得更远。但我不知道如何在 MacOS 中做到这一点,有没有 QT/C++ 解决方案?谢谢!
【问题讨论】:
【参考方案1】:MacOS 基本上是 UNIX。
方法一:如果你有PID,你可以发送信号。
https://www.tutorialspoint.com/cplusplus/cpp_signal_handling.htm
方法二:建立socket连接。这大概就是我会做的。我会在程序 B 中嵌入一个 REST 服务器,并让程序 A 发送一个 REST 调用。
【讨论】:
以上是关于如何将自定义事件/信号从一个进程发送到 MacOS 中的另一个进程的主要内容,如果未能解决你的问题,请参考以下文章
将自定义 UIKit 事件从自定义 UIKit 控件公开到 SwiftUI