MemoryMappedFile.CreateViewAccessor 方法

定义

创建映射到内存映射文件视图的 MemoryMappedViewAccessor

重载

CreateViewAccessor()

创建映射到内存映射文件视图的 MemoryMappedViewAccessor

CreateViewAccessor(Int64, Int64)

创建一个 MemoryMappedViewAccessor,它映射到内存映射文件的视图并具有指定的偏移和大小。

CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)

创建一个 MemoryMappedViewAccessor,它映射到内存映射文件的视图并具有指定的偏移、大小和访问限制。

CreateViewAccessor()

Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs

创建映射到内存映射文件视图的 MemoryMappedViewAccessor

C#
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor ();

返回

可随机访问的内存块。

例外

对内存映射文件的访问控制未获授权。

注解

可以使用此方法返回的视图随机访问内存映射文件。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateViewAccessor(Int64, Int64)

Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs

创建一个 MemoryMappedViewAccessor,它映射到内存映射文件的视图并具有指定的偏移和大小。

C#
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size);

参数

offset
Int64

启动此视图的字节位置。

size
Int64

视图的大小。 指定 0(零)可创建从 offset 开始,大约在内存映射文件结尾处结束的视图。

返回

可随机访问的内存块。

例外

offsetsize 是负值。

- 或 -

size 大于逻辑地址空间。

对内存映射文件的访问控制未获授权。

出现 I/O 错误。

示例

以下示例创建内存映射文件的视图并对其进行编辑。 此代码示例是为 MemoryMappedFile 类提供的一个更大示例的一部分。

C#
// Create a random access view, from the 256th megabyte (the offset)
// to the 768th megabyte (the offset plus length).
using (var accessor = mmf.CreateViewAccessor(offset, length))
{
    int colorSize = Marshal.SizeOf(typeof(MyColor));
    MyColor color;

    // Make changes to the view.
    for (long i = 0; i < length; i += colorSize)
    {
        accessor.Read(i, out color);
        color.Brighten(10);
        accessor.Write(i, ref color);
    }
}

注解

可以使用此方法返回的视图随机访问内存映射文件。

若要创建内存映射文件的完整视图,请为 size 参数指定 0 (零) 。 如果执行此操作,视图的大小可能大于磁盘上源文件的大小。 这是因为视图以系统页的单位提供,并且视图的大小将向上舍入到下一个系统页面大小。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)

Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs
Source:
MemoryMappedFile.cs

创建一个 MemoryMappedViewAccessor,它映射到内存映射文件的视图并具有指定的偏移、大小和访问限制。

C#
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
C#
[System.Security.SecurityCritical]
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);

参数

offset
Int64

启动此视图的字节位置。

size
Int64

视图的大小。 指定 0(零)可创建从 offset 开始,大约在内存映射文件结尾处结束的视图。

access
MemoryMappedFileAccess

指定内存映射文件允许的访问类型的枚举值之一。 默认值为 ReadWrite

返回

可随机访问的内存块。

属性

例外

offsetsize 是负值。

- 或 -

size 大于逻辑地址空间。

access 对于内存映射文件无效。

出现 I/O 错误。

注解

可以使用此方法返回的视图随机访问内存映射文件。

若要创建内存映射文件的完整视图,请为 size 参数指定 0 (零) 。 如果执行此操作,视图的大小可能大于磁盘上源文件的大小。 这是因为视图以系统页的单位提供,并且视图的大小将向上舍入到下一个系统页面大小。

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1