内存映射流 - 等待数据到达

Memory Mapped Stream - Wait for data to arrive

我正在尝试让应用程序 A 将字节数组写入内存映射流,然后应用程序 B 读取这段内存。我已经到了他们可以读写的地步,但问题是我无法让应用程序 B 等待新数据到达,现在它只是尽可能快地读取。

搜索了一下后,我发现您可以为 MemoryMappedStream.BeginRead 分配回调,但我不确定如何使用此回调来等待流中的新数据。这种情况怎么回调呢?还是我看错方向了?

感谢 MatthewWatson,我调查了 EvenWaitHandles 并设法让进程使用两个 AutoResetEvents 等待彼此的信号。其中一个用于在执行读取时设置MemoryReadEventWaitHandle,另一个在写入完成时设置MemoryWrittenEventWaitHandle。这样他们就不会互相干扰并按正确的顺序执行任务。