MemoryMappedFile.CreateViewAccessor 方法

定义

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

重载

CreateViewAccessor()

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

CreateViewAccessor(Int64, Int64)

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

CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)

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

CreateViewAccessor()

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

public:
 System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor();
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor ();
member this.CreateViewAccessor : unit -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor () As MemoryMappedViewAccessor

返回

MemoryMappedViewAccessor

可随机访问的内存块。

例外

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

注解

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

另请参阅

适用于

CreateViewAccessor(Int64, Int64)

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

public:
 System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor(long offset, long size);
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size);
member this.CreateViewAccessor : int64 * int64 -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor (offset As Long, size As Long) As MemoryMappedViewAccessor

参数

offset
Int64

启动此视图的字节位置。

size
Int64

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

返回

MemoryMappedViewAccessor

可随机访问的内存块。

例外

offsetsize 是负值。

  • 或 - size 大于逻辑地址空间。

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

出现 I/O 错误。

示例

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

// 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);
    }
}
' Create a random access view, from the 256th megabyte (the offset)
' to the 768th megabyte (the offset plus length).
Using accessor = mmf.CreateViewAccessor(offset, length)
    Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
    Dim color As MyColor
    Dim i As Long = 0

    ' Make changes to the view.
    Do While (i < length)
        accessor.Read(i, color)
        color.Brighten(10)
        accessor.Write(i, color)
        i += colorSize
    Loop
End Using

注解

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

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

另请参阅

适用于

CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)

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

public:
 System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor(long offset, long size, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access);
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
[System.Security.SecurityCritical]
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
member this.CreateViewAccessor : int64 * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
[<System.Security.SecurityCritical>]
member this.CreateViewAccessor : int64 * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor (offset As Long, size As Long, access As MemoryMappedFileAccess) As MemoryMappedViewAccessor

参数

offset
Int64

启动此视图的字节位置。

size
Int64

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

access
MemoryMappedFileAccess

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

返回

MemoryMappedViewAccessor

可随机访问的内存块。

属性

例外

offsetsize 是负值。

  • 或 - size 大于逻辑地址空间。

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

出现 I/O 错误。

注解

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

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

另请参阅

适用于