NetworkStream.ReadAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| 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
用來監控取消申請的代幣。
傳回
代表非同步讀取操作的 A ValueTask<TResult> 。 其 Result 屬性的值包含從零(0)到請求位元組數之間的總位元組 buffer 數。 結果值只有在請求零位元組或因為對等套接字執行優雅關機而無法再有位元組時為零(0)。 若請求零位元組,讀取操作可能立即完成,或直到至少有一個位元組可用後才完成(但不會消耗任何資料)。
例外狀況
那是 NetworkStream 關門的。
取消令牌也被取消了。 此例外會儲存在回傳的任務中。
備註
此方法讀取所有可用 buffer 資料,並回傳成功讀取的位元組數。
Note
打電話給物業NetworkStream確認是否可讀。CanRead 如果你嘗試從無法讀取的 讀取 NetworkStream ,你會得到一個 InvalidOperationException。
Note
如果你收到, 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 count, System::Threading::CancellationToken cancellationToken);
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(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);
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, count As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
Public Overrides Function ReadAsync (buffer As Byte(), offset As Integer, size As Integer, cancellationToken As CancellationToken) As Task(Of Integer)
參數
- buffer
- Byte[]
用來寫入資料的緩衝區。
- offset
- Int32
該地點 buffer 將開始儲存資料。
- countsize
- Int32
從 中讀取 NetworkStream的位元組數。
- cancellationToken
- CancellationToken
用來監控取消申請的代幣。
傳回
一個代表非同步讀取操作的任務。 其 Result 屬性的值包含從零(0)到請求位元組數之間的總位元組 buffer 數。 結果值只有在請求零位元組或因為對等套接字執行優雅關機而無法再有位元組時為零(0)。 若請求零位元組,讀取操作可能立即完成,或直到至少有一個位元組可用後才完成(但不會消耗任何資料)。
例外狀況
那是 NetworkStream 關門的。
取消令牌也被取消了。 此例外會儲存在回傳的任務中。
備註
此方法讀取 buffer 並回傳成功讀取的位元組數。 操作會 ReadAsync 讀取盡可能多的資料,直到參數指定的 count 位元組數為止。
Note
打電話給物業NetworkStream確認是否可讀。CanRead 如果你嘗試從無法讀取的 讀取 NetworkStream ,你會得到一個 InvalidOperationException。
Note
如果你收到, IOException請檢查該 InnerException 物業以判斷是否由某個因素 SocketException造成。 若有,請使用 ErrorCode 屬性取得特定錯誤代碼,並參考 Windows Sockets 版本 2 的 API 錯誤代碼文件以了解錯誤的詳細描述。
此方法在任務中儲存所有非使用例外,該方法的同步對應程式可拋出這些例外。 如果回傳的任務中儲存了例外,該例外會在等待任務時拋出。 使用例外錯誤,例如 ArgumentException,仍會同步拋出。 關於儲存的例外,請參見由 Read(Byte[], Int32, Int32)拋出的例外。