我能否通过编程创建一个虚拟内存磁盘?

3
为了提高性能,我想将数据写入内存中,以便外部应用程序可以读取。我无法将两个应用程序链接在一起,因此我认为唯一的方法是通过写入文件来实现。但是将其写入物理磁盘速度不够快。我希望挂载一个虚拟分区,以便任何应用程序都可以访问它。如何操作?

请查看这里 - Kenan E. K.
DevCon不可再分发。它是作为调试和开发工具提供的。 - Nifle
我的应用程序不会被重新分发。 - Jader Dias
即使如此,我也可以要求人们下载并安装它。 - Jader Dias
4个回答

9
你不需要创建虚拟磁盘来在Windows上共享进程间内存 - 你可以创建一个共享内存块,多个进程就可以访问该内存。
请参阅此MSDN文章:创建命名共享内存

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

1

我曾经看到过一些商业可用的 .NET RAM 磁盘实现,但现在好像找不到了。

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


1

希望您能使用.NET 4.0 :)

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

Gunnar Peipman在以下链接中很好地记录了:.Net Framework 4.0: Using memory mapped files

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

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


1
很遗憾,似乎只有.NET应用程序才能访问这些文件。 - Jader Dias

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接