C# 内存映射文件错误?

C# 内存映射文件错误?,c#,.net-4.0,memory-mapped-files,C#,.net 4.0,Memory Mapped Files,根据: 内存映射文件使程序员能够处理非常大的内存 文件,因为内存可以并发管理,并且它们允许 对文件的完全、随机访问,无需查找 问题: 内存Mappe文件的整个原理是写/读字节,并按位置和偏移量创建视图 “无需寻求”是什么意思 我必须知道开始和结束(偏移量)才能读取文件 所以寻求确实存在 我确实在这个庞大的字节数组中寻找 我缺少什么?MMF具有随机访问权限,而普通文件只有一个特定的读写点 使用偏移量(和指针等)与在流中查找不同 我必须知道开始和结束(偏移量),以便读取文件 您不“读取文件”,而是访

根据:

内存映射文件使程序员能够处理非常大的内存 文件,因为内存可以并发管理,并且它们允许 对文件的完全、随机访问,无需查找

问题:

内存Mappe文件的整个原理是写/读字节,并按位置和偏移量创建视图

“无需寻求”是什么意思

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

所以寻求确实存在

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


我缺少什么?

MMF具有随机访问权限,而普通文件只有一个特定的读写点

使用偏移量(和指针等)与在流中查找不同

我必须知道开始和结束(偏移量),以便读取文件


您不“读取文件”,而是访问内存并需要地址,而不是流位置

使用内存映射文件时,基本上会得到指向内存块的指针,并将其作为某种类型的数组进行访问。然后访问文件中的特定位置是基于索引和/或偏移量的内存访问。操作系统以不可见的方式管理所需的查找。

MMF是实际“映射”到虚拟内存空间的文件,因此您可以将其视为数组方面的字典(非常笼统的比较)。在处理非常大的文件时,它是一个舒适的(如果不是说只有可能的话)解决方案,方法是访问该文件的块以继续。我想说的是,可能每个视频编辑软件都使用这种技术。没有别的办法了。

.1。这不是寻找光盘,这意味着没有寻找像在一个流。您可以在文件中跳转,因为您以数组的形式访问它。如果我有一个100 mb的记录文件(个人类),你必须改变位置——这在编程方面要笨拙得多。像这样访问它的中间内容是不可能的。因此,我必须从头开始,然后逐记录读取reciod,直到所需的记录。我不能只是在数组的中间……?你如何访问MMF?作为一个流?@HenkHolterman让我们假设我有一个巨大的字节数组,我正在用起始偏移量创建一个视图。。。