c# - 内存映射文件的误解?

标签 c# .net-4.0 memory-mapped-files

根据Msdn :

Memory-mapped files enable programmers to work with extremely large files because memory can be managed concurrently, and they allow complete, random access to a file without the need for seeking

问题:

内存映射文件的整个原理是写入/读取字节,并通过位置和偏移量创建 View 。

“无需寻找”是什么意思?

必须知道开始和结束(偏移量)才能读取文件。

所以寻找确实存在!

我确实在这个巨大的字节数组中寻找......

我错过了什么?

最佳答案

当使用内存映射文件时,您基本上会获得一个指向内存块的指针,并将其作为某种类型的数组进行访问。然后,访问文件中的特定位置是基于索引和/或偏移量的内存访问。操作系统在背后无形地管理着所需的查找。

关于c# - 内存映射文件的误解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9886415/

相关文章:

.net-4.0 - 在哪里可以找到 .net 4 的最终功能列表?

.net - .NET 4.0中的垃圾回收

multithreading - 在刷新和取消映射之前,是否需要同步从不同线程对内存映射文件的写入?

c# - 即使操作系统报告它存在,也找不到互斥锁

c# - 如何将 Lambda 表达式转换为 Func<> 变量

c# - 如何在 .NET 中订阅特定的网络适配器连接事件

c++ - 关闭任何句柄后,CreateFile FILE_FLAG_DELETE_ON_CLOSE 失败

c# - WinForms.ReportViewer - 呈现的页面数

c# - .net framework 4.0 应用程序从 USB 驱动器运行

c++ - 查询从内存映射文件中检索到的 Rtree 时出现段错误