NetworkStream.ReadAsync 方法

定义

重载

ReadAsync(Memory<Byte>, CancellationToken)

以异步操作形式,从 NetworkStream 读取数据,并将其存储在字节内存范围内。

ReadAsync(Byte[], Int32, Int32, CancellationToken)

以异步操作形式,从 NetworkStream 读取数据,并将其存储到字节数组的指定范围内。

ReadAsync(Memory<Byte>, CancellationToken)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

以异步操作形式,从 NetworkStream 读取数据,并将其存储在字节内存范围内。

public override System.Threading.Tasks.ValueTask<int> ReadAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
override this.ReadAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Overrides Function ReadAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

参数

buffer
Memory<Byte>

要写入数据的缓冲区。

cancellationToken
CancellationToken

要监视取消请求的标记。

返回

表示异步读取操作的 ValueTask<TResult>。 其 Result 属性的值包含读入 buffer 的总字节数。

例外

访问套接字时出错。

- 或 -

从网络读取时出错。

取消令牌已取消。 此异常存储在返回的任务中。

注解

此方法读取可用 buffer 数据,并返回成功读取的字节数。

注意

通过调用 CanRead 属性检查 是否NetworkStream可读。 如果尝试从不可读的 读取 NetworkStream ,则会收到 InvalidOperationException

注意

如果收到 ,IOException检查 属性InnerException来确定它是否由 SocketException引起。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码 文档以获取错误的详细说明。

适用于

ReadAsync(Byte[], Int32, Int32, CancellationToken)

Source:
NetworkStream.cs
Source:
NetworkStream.cs
Source:
NetworkStream.cs

以异步操作形式,从 NetworkStream 读取数据,并将其存储到字节数组的指定范围内。

public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int size, System::Threading::CancellationToken cancellationToken);
public:
 override System::Threading::Tasks::Task<int> ^ ReadAsync(cli::array <System::Byte> ^ buffer, int offset, int count, System::Threading::CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int size, System.Threading.CancellationToken cancellationToken);
public override System.Threading.Tasks.Task<int> ReadAsync (byte[] buffer, int offset, int count, System.Threading.CancellationToken cancellationToken);
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
override this.ReadAsync : byte[] * int * int * System.Threading.CancellationToken -> System.Threading.Tasks.Task<int>
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)

参数

buffer
Byte[]

要写入数据的缓冲区。

offset
Int32

buffer 中开始将数据存储到的位置。

sizecount
Int32

要从 NetworkStream 中读取的字节数。

cancellationToken
CancellationToken

要监视取消请求的标记。

返回

表示异步读取操作的任务。 其 Result 属性的值包含读入 buffer 的总字节数。

例外

访问套接字时出错。

- 或 -

从网络读取时出错。

取消令牌已取消。 此异常存储在返回的任务中。

注解

此方法将数据读入 buffer 并返回成功读取的字节数。 该 ReadAsync 操作读取的数据量与可用数据量相同,最大为 参数指定的 size 字节数。

注意

通过调用 CanRead 属性检查 是否NetworkStream可读。 如果尝试从不可读的 读取 NetworkStream ,则会收到 InvalidOperationException

注意

如果收到 ,IOException检查 属性InnerException来确定它是否由 SocketException引起。 如果是这样,请使用 ErrorCode 属性获取特定的错误代码,并参阅 Windows 套接字版本 2 API 错误代码 文档以获取错误的详细说明。

此方法将存储在任务中,它返回该方法的同步对应项可能引发的所有非使用异常。 如果异常存储在返回的任务中,则在等待任务时将引发该异常。 使用异常(如 ArgumentException)仍会同步引发。 有关存储的异常,请参阅 引发的 Read(Byte[], Int32, Int32)异常。

适用于