MailSlot的进程同步

时间:2013-12-02 09:05:07

标签: c++ winapi interprocess mailslot

我试图在Windows上的两个进程之间进行进程间通信,从高层次的角度来看我想同步这两个进程,假设有两个进程,进程1进程2,

进程1是32位应用程序,进程2是64位应用程序, 进程1正在运行,有时它正在调用进程2,进程2运行短期并自行关闭,进程2需要从进程1打开时读取一些数据。

对于这种情况,我认为MailSlot可能是一个很好的候选者,为了通过邮件进行通信,进程2必须创建一个邮件槽,然后进程1应该发送邮件到这个邮件槽,而进程2应该读取邮件槽,我的问题是如何同步这两个进程,以便在打开进程2时创建一个邮件槽,而不是触发进程1发送邮件并切换到等待状态,而不是进程1发送邮件到进程2,而不是进程2切换到运行状态并读取邮件。

我该如何实现这样的场景?

1 个答案:

答案 0 :(得分:1)

process1创建event

process1启动process2。

process1 wait关于要发出信号的事件。

process2创建其邮件槽。

process2 opens事件对象

process2 signals事件。

process1将数据发送到process2。

process1 resets事件。

或者尝试重用您现在拥有的代码,在process1中添加一个邮件槽,以便从process2获得通知,将参数发送到process2的邮件槽。