3

出于性能目的,我想写入外部应用程序可以读取的内存。我无法将两个应用程序链接在一起,所以我认为唯一的方法是编写文件。但是将其写入物理磁盘还不够快。我想挂载一个虚拟分区,以便任何应用程序都可以访问它。怎么做?

4

4 回答 4

9

您无需创建虚拟磁盘来在 Windows 上的进程之间共享内存 - 您可以创建一个共享内存块,然后多个进程可以访问该内存。

请参阅此 MSDN 文章:创建命名共享内存

于 2009-07-11T16:07:18.177 回答
3

您可以使用命名管道在应用程序之间传输数据。

于 2009-07-11T15:57:29.850 回答
1

我已经看到了一些 .net 的商业可用 ramdisk 实现,但我现在似乎找不到它。

另一个选项可能是:C#访问内存映射文件

于 2009-07-11T15:48:15.610 回答
1

我希望你可以使用 .NET 4.0 :)

.NET 4.0 引入了内存映射文件。

Gunnar Peipman 在以下链接中很好地写了博客:.Net Framework 4.0:使用内存映射文件

在他的博客中,“当您需要进行内存数据操作并且您的数据结构很大时,内存映射文件非常有用。对于大型内存数据,内存映射文件的性能是最好的。它比 MemoryStream 快得多。和硬盘上的文件一样,内存映射文件可以在不同程序之间共享。”

他的博客也包含示例代码。

于 2009-07-11T21:15:20.207 回答