说明
参见:
https://learn.microsoft.com/zh-cn/dotnet/api/system.io.memorymappedfiles.memorymappedfil
e.dispose?view=netframework-4.5.1#system-io-memorymappedfiles-memorymappedfile-dispos
e(system-boolean)
一、调试方法
(一)命令行程序:
1、先运行 Program1,不要关闭。
2、再运行 Program12。
(二)winForm 程序:
1、先运行 ConsoleApplication1,不要关闭
2、再运行 ConsoleApplication2。
二、知识点:
当 处 理 大 型 数 据 或 需 要 在 多 个 进 程 ( 或 多 个 程 序 ) 之 间 共 享 数 据 时 ,
MemoryMappedFiles(内存映射文件)是一种非常有用的技术。它允许将文件映射到进程
的虚拟内存中,从而可以直接在内存中读取和写入文件的内容,而无需进行显式的文件 I/O
操作。
MemoryMappedFiles 提供了以下几个主要的用途和优势:
1. 高性能的读写操作:由于数据直接映射到内存中,可以通过内存访问来读取和写入
数据,而不需要频繁的磁盘 I/O 操作,从而提高了读写操作的性能。
2. 共享数据:多个进程可以通过内存映射文件来共享数据,而无需进行显式的进程间
通信。这对于需要在多个进程之间共享大量数据的应用程序非常有用。
3. 大型数据处理:当需要处理大型数据集时,内存映射文件可以提供更高效的方式来
读取和写入数据,而无需将整个数据集加载到内存中。
下面是使用 MemoryMappedFiles 的一般步骤:
1. 创 建 或 打 开 内 存 映 射 文 件 : 使 用 MemoryMappedFile.CreateNew 、
MemoryMappedFile.CreateFromFile 或 MemoryMappedFile.OpenExisting
方法来创建或打开内存映射文件。这些方法接受一个文件名或文件流作为参数,并
返回一个 MemoryMappedFile 对象。
2. 创建或打开内存映射视图:使用 CreateViewAccessor、CreateViewStream 或
CreateViewStream 方 法 来 创 建 或 打 开 内 存 映 射 视 图 。 这 些 方 法 返 回 一 个
MemoryMappedViewAccessor 、 MemoryMappedViewStream 或
MemoryMappedViewStream 对象,用于读取和写入内存映射文件的内容。
3. 读 取 和 写 入 数 据 : 使 用 MemoryMappedViewAccessor 或
MemoryMappedViewStream 对象提供的方法来读取和写入内存映射文件的内
容。您可以像操作常规的内存或文件流一样进行读写操作。
4. 关闭内存映射文件和内存映射视图:在使用完内存映射文件和内存映射视图后,应
该显式地关闭它们,以释放相关的资源。