MemoryMappedViewStream 类

定义

表示内存映射文件的视图作为按顺序访问的流。

public ref class MemoryMappedViewStream sealed : System::IO::UnmanagedMemoryStream
public sealed class MemoryMappedViewStream : System.IO.UnmanagedMemoryStream
type MemoryMappedViewStream = class
    inherit UnmanagedMemoryStream
Public NotInheritable Class MemoryMappedViewStream
Inherits UnmanagedMemoryStream
继承
MemoryMappedViewStream
继承

示例

以下示例获取内存映射文件的 MemoryMappedViewStream,并将值写入流进行进程间通信。

此代码示例是为 MemoryMappedFile.CreateNew 方法提供的更大示例的一部分。

using (MemoryMappedViewStream stream = mmf.CreateViewStream())
{
    BinaryWriter writer = new BinaryWriter(stream);
    writer.Write(1);
}
Using Stream As MemoryMappedViewStream = mmf.CreateViewStream()
    Dim writer As BinaryWriter = New BinaryWriter(Stream)
    writer.Write(1)
End Using

注解

使用 MemoryMappedFile 对象的 CreateViewStream 方法获取此流。

属性

CanRead

获取一个值,该值指示流是否支持读取。

(继承自 UnmanagedMemoryStream)
CanSeek

获取一个值,该值指示流是否支持查找。

(继承自 UnmanagedMemoryStream)
CanTimeout

获取一个值,该值确定当前流是否可以超时。

(继承自 Stream)
CanWrite

获取一个值,该值指示流是否支持写入。

(继承自 UnmanagedMemoryStream)
Capacity

获取流长度(大小)或分配给流的内存总量(容量)。

(继承自 UnmanagedMemoryStream)
Length

获取流中的数据长度。

(继承自 UnmanagedMemoryStream)
PointerOffset

获取此视图的起始位置与内存映射文件的开头偏移的字节数。

Position

获取或设置流中的当前位置。

(继承自 UnmanagedMemoryStream)
PositionPointer

获取或设置基于流中当前位置的流指向流的字节指针。

(继承自 UnmanagedMemoryStream)
ReadTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时前尝试读取的时间。

(继承自 Stream)
SafeMemoryMappedViewHandle

获取内存映射文件的视图的句柄。

WriteTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时之前尝试写入的时间。

(继承自 Stream)

方法

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步读取操作。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)

(继承自 Stream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步写入操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)

(继承自 Stream)
Close()

关闭当前流并释放与当前流关联的任何资源(如套接字和文件句柄)。 请确保流已正确释放,而不是调用此方法。

(继承自 Stream)
CopyTo(Stream)

从当前流中读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyTo(Stream, Int32)

从当前流中读取字节,并使用指定的缓冲区大小将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream)

从当前流异步读取字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream, CancellationToken)

使用指定的取消标记异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream, Int32)

使用指定的缓冲区大小异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CopyToAsync(Stream, Int32, CancellationToken)

使用指定的缓冲区大小和取消令牌异步读取当前流中的字节并将其写入另一个流。 这两个流位置都是按复制的字节数进行高级的。

(继承自 Stream)
CreateObjRef(Type)

创建一个对象,其中包含生成用于与远程对象通信的代理所需的所有相关信息。

(继承自 MarshalByRefObject)
CreateWaitHandle()
已过时.
已过时.
已过时.

分配 WaitHandle 对象。

(继承自 Stream)
Dispose()

释放 Stream使用的所有资源。

(继承自 Stream)
Dispose(Boolean)

释放 UnmanagedMemoryStream 使用的非托管资源,并选择性地释放托管资源。

(继承自 UnmanagedMemoryStream)
DisposeAsync()

异步释放 Stream使用的非托管资源。

(继承自 Stream)
EndRead(IAsyncResult)

等待挂起的异步读取完成。 (请考虑改用 ReadAsync(Byte[], Int32, Int32)

(继承自 Stream)
EndWrite(IAsyncResult)

结束异步写入操作。 (请考虑改用 WriteAsync(Byte[], Int32, Int32)

(继承自 Stream)
Equals(Object)

确定指定的对象是否等于当前对象。

(继承自 Object)
Flush()

清除此流的所有缓冲区,并导致任何缓冲数据写入基础文件。

FlushAsync()

异步清除此流的所有缓冲区,并导致任何缓冲数据写入基础设备。

(继承自 Stream)
FlushAsync(CancellationToken)

重写 FlushAsync(CancellationToken) 方法,以便在指定时取消操作,但未执行其他操作。

(继承自 UnmanagedMemoryStream)
GetHashCode()

用作默认哈希函数。

(继承自 Object)
GetLifetimeService()
已过时.

检索控制此实例的生存期策略的当前生存期服务对象。

(继承自 MarshalByRefObject)
GetType()

获取当前实例的 Type

(继承自 Object)
Initialize(Byte*, Int64, Int64, FileAccess)

使用指向非托管内存位置的指针初始化 UnmanagedMemoryStream 类的新实例。

(继承自 UnmanagedMemoryStream)
Initialize(SafeBuffer, Int64, Int64, FileAccess)

使用指定的偏移量、长度和文件访问初始化安全缓冲区中 UnmanagedMemoryStream 类的新实例。

(继承自 UnmanagedMemoryStream)
InitializeLifetimeService()
已过时.

获取生存期服务对象来控制此实例的生存期策略。

(继承自 MarshalByRefObject)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(继承自 MarshalByRefObject)
ObjectInvariant()
已过时.

Contract提供支持。

(继承自 Stream)
Read(Byte[], Int32, Int32)

将指定的字节数读入指定的数组。

(继承自 UnmanagedMemoryStream)
Read(Span<Byte>)

将此非托管内存流的所有字节读入指定的字节范围。

(继承自 UnmanagedMemoryStream)
ReadAsync(Byte[], Int32, Int32)

从当前流异步读取字节序列,并通过读取的字节数推进流中的位置。

(继承自 Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

将指定的字节数异步读取到指定的数组中。

(继承自 UnmanagedMemoryStream)
ReadAsync(Memory<Byte>, CancellationToken)

将非托管内存流字节异步读取到内存区域中。

(继承自 UnmanagedMemoryStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

至少从当前流中读取最小字节数,并通过读取的字节数提升流中的位置。

(继承自 Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

异步读取当前流的最小字节数,按读取的字节数推进流中的位置,并监视取消请求。

(继承自 Stream)
ReadByte()

从流中读取字节并将流中的位置向前推进一个字节,或者在流末尾返回 -1。

(继承自 UnmanagedMemoryStream)
ReadExactly(Byte[], Int32, Int32)

从当前流中读取 count 字节数,并提升流中的位置。

(继承自 Stream)
ReadExactly(Span<Byte>)

从当前流中读取字节,并在填充 buffer 之前推进流中的位置。

(继承自 Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

从当前流异步读取 count 字节数,推进流中的位置,并监视取消请求。

(继承自 Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

从当前流异步读取字节,在填充 buffer 之前先行流中的位置,并监视取消请求。

(继承自 Stream)
Seek(Int64, SeekOrigin)

将当前流的当前位置设置为给定值。

(继承自 UnmanagedMemoryStream)
SetLength(Int64)

设置当前流的长度。

ToString()

返回一个表示当前对象的字符串。

(继承自 Object)
Write(Byte[], Int32, Int32)

使用缓冲区中的数据将字节块写入当前流。

(继承自 UnmanagedMemoryStream)
Write(ReadOnlySpan<Byte>)

使用提供的字节范围中的数据将字节块写入当前非托管内存流。

(继承自 UnmanagedMemoryStream)
WriteAsync(Byte[], Int32, Int32)

以异步方式将字节序列写入当前流,并通过写入的字节数推进此流中的当前位置。

(继承自 Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

将字节序列异步写入当前流,按写入的字节数推进此流中的当前位置,并监视取消请求。

(继承自 UnmanagedMemoryStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

以异步方式将字节范围写入当前流,按写入的字节数推进此流中的当前位置,并监视取消请求。

(继承自 UnmanagedMemoryStream)
WriteByte(Byte)

将字节写入文件流中的当前位置。

(继承自 UnmanagedMemoryStream)

扩展方法

CopyToAsync(Stream, PipeWriter, CancellationToken)

使用取消令牌从 Stream 异步读取字节并将其写入指定的 PipeWriter

ConfigureAwait(IAsyncDisposable, Boolean)

配置如何执行从异步可释放项返回的任务的 await。

适用于

另请参阅