如何从另一个应用程序读取内存 - 共享数据

How read Memory from another application - Share Data

我们可以像这样读/写内存中的数据:

static void Main(string[] args)
{
    using (var ms = new MemoryStream())
    {
        var sw = new StreamWriter(ms);
        sw.WriteLine("Hello World");
        sw.Flush();
        ms.Position = 0;
        var sr = new StreamReader(ms);
        var myStr = sr.ReadToEnd();
        Console.WriteLine(myStr);
    }

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

现在我想在 Ram(内存 = 随机存取存储器)上写入数据并从 Another Application?
读取这些数据 我该怎么做才能 Share 内存中的字符串?

重要提示:我不想在硬盘上写入任何数据。
编辑: 我的 .net 版本是 3.5

.net 更新 3.5
内存映射文件在 windows 中已经有一段时间了,所以即使 .net 3.5 没有它们,仍然可以包装原生 api。 Github 项目 filemap 就是这样做的。不幸的是,他们没有示例如何在两个进程之间共享内存映射文件。


此答案对 .NET Framework 4.6 和 4.5
很有用 不是 3.5
我认为您不能在两个进程之间共享内存流。对于其他选项,最接近的是 memory mapped files. Check this answer