共用方式為


NetworkStream.ReadAsync 方法

定義

多載

ReadAsync(Memory<Byte>, CancellationToken)

以非同步作業從 NetworkStream 讀取資料,並將其儲存於位元組記憶體範圍。

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

以非同步作業從 NetworkStream 讀取資料,並將其儲存至指定的位元組陣列範圍。

ReadAsync(Memory<Byte>, CancellationToken)

來源:
NetworkStream.cs
來源:
NetworkStream.cs
來源:
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 Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

適用於

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

來源:
NetworkStream.cs
來源:
NetworkStream.cs
來源:
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 Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

這個方法會儲存在工作中,它會傳回方法同步對應專案可以擲回的所有非使用例外狀況。 如果例外狀況儲存在傳回的工作中,則會在等候工作時擲回該例外狀況。 使用例外狀況,例如 ArgumentException仍會同步擲回。 如需預存例外狀況,請參閱 擲回的 Read(Byte[], Int32, Int32)例外狀況。

適用於