【发布时间】:2017-12-11 20:52:26
【问题描述】:
如何通知监听器通过 CreateNew() 创建的 MemoryMappedFile 已更改?我在磁盘上没有 MemoryMappedFile。当第一个进程更改 MMF 时,我希望第二个进程开始从 MMF 读取。类似于 FileSystemWatcher.Changed 事件。
MemoryMappedFile mmf = MemoryMappedFile.CreateNew("testmap", 10000);
// Second process has been started and waiting for data in MMF
// Writing could be performed multiple times
using (MemoryMappedViewStream stream = mmf.CreateViewStream())
{
BinaryWriter writer = new BinaryWriter(stream);
writer.Write("hello world!");
}
第二道工序代码:
// The code below should executes when writing to "testmap" file was finished.
using (MemoryMappedFile mmf = MemoryMappedFile.OpenExisting("testmap"))
{
using (MemoryMappedViewStream stream = mmf.CreateViewStream())
{
BinaryReader reader = new BinaryReader(stream);
Console.WriteLine("Process A says: {0}", reader.ReadString());
}
}
已更新。解决方案是使用 Piotr 建议的Named Pipes MSDN。
【问题讨论】:
-
发布,你现在拥有什么
-
@Piotr,已发布。
标签: c#