我有以下问题:我有两个进程进程A启动进程B并且必须等待 直到进程B返回一些信息,这是进程A的进一步工作所需要的。问题是 进程B可能会失败并破坏其工作,进程A不知道它并一直等待!
在这种情况下,理想的沟通方式是什么,以及如何确保流程A知道流程B 是否还在工作(没有看门狗定时器)?
对于进程间通信我认为命名管道,套接字和磁盘上的文件只是 信息流程B提供流程A,可以保存为文本。
实现这一目标的任何想法?
答案 0 :(得分:2)
让B在启动时创建一个Mutex并锁定它。然后,使用WaitForSingleObject api使A等待它。 Mutex在其所有者进程终止时会自动销毁,但如果您愿意,可以尽快将其释放(例如,B可以释放互斥锁以通知A它已准备好,而它仍然需要进行一些清理。这将是让A等待不必要的长时间。)
如果您愿意,也可以指定超时,这样您就可以在A停止等待之前给B一个最长的执行时间。
答案 1 :(得分:1)