有没有办法在C#中直接从磁盘填充和使用变量?

时间:2015-04-28 18:51:57

标签: c# .net

例如:

var myIndex = populateMassiveIndex();

在上面的代码中,我们假设myIndex会占用大量内存......比现有的更多。在C#中是否有一种方法可以绕过内存并直接填充和访问磁盘中的变量,即使它可能要慢得多?

特别是在变量加载数据之前,所以当我赋值时,它直接进入磁盘。

1 个答案:

答案 0 :(得分:4)

您无法直接使用磁盘备份变量,但您可以允许操作系统为您执行此操作。这就是virtual memory的工作方式。

但是,我怀疑你可能会发现memory mapped files更适合你实际想要完成的事情。

  

内存映射文件包含虚拟内存中文件的内容。文件和内存空间之间的这种映射使应用程序(包括多个进程)能够通过直接读取和写入内存来修改文件。从.NET Framework 4开始,您可以使用托管代码访问内存映射文件,方法与本机Windows函数访问内存映射文件的方式相同,如在MSDN Library中管理Win32中的内存映射文件中所述。