我试图让应用程序A将一个字节数组写入内存映射流,然后应用程序B读取这段内存。我已经达到了可以读写的程度,但问题是我无法让应用程序B等待新数据到达,现在它只是尽可能快地读取。
在搜索了一下后,我发现你可以为MemoryMappedStream.BeginRead
分配一个回调,但我不确定如何使用这个回调来等待来自流的新数据。如何针对这种情况进行回调?或者我是否在寻找错误的方向?
答案 0 :(得分:1)
感谢MatthewWatson,我调查了EvenWaitHandles并设法让处理器使用两个AutoResetEvents
等待彼此的信号。其中一个用于在执行读取时设置MemoryReadEventWaitHandle
,而另一个在写入完成时设置MemoryWrittenEventWaitHandle
。这样他们就不会互相干扰,并按照正确的顺序执行任务。