NetworkStream.ReadAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
ReadAsync(Memory<Byte>, CancellationToken) |
以非同步作業從 NetworkStream 讀取資料,並將其儲存於位元組記憶體範圍。 |
ReadAsync(Byte[], Int32, Int32, CancellationToken) |
以非同步作業從 NetworkStream 讀取資料,並將其儲存至指定的位元組陣列範圍。 |
ReadAsync(Memory<Byte>, CancellationToken)
以非同步作業從 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)
參數
- 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 讀取資料,並將其儲存至指定的位元組陣列範圍。
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)例外狀況。