NetworkStream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
NetworkStreamからの非同期読み取りを開始します。
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginRead(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginRead(byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginRead : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginRead (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
パラメーター
- buffer
- Byte[]
NetworkStreamから読み取られたデータを格納するメモリ内の場所であるByte型の配列。
- offset
- Int32
データの格納を開始する buffer 内の場所。
- countsize
- Int32
NetworkStreamから読み取るバイト数。
- callback
- AsyncCallback
BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)の完了時に実行されるAsyncCallback デリゲート。
- state
- Object
追加のユーザー定義データを含むオブジェクト。
戻り値
非同期呼び出しを表す IAsyncResult 。
例外
buffer パラメーターはnull。
offset パラメーターが 0 未満です。
-又は-
offset パラメーターは、bufferパラメーターの長さを超えています。
-又は-
sizeが 0 未満です。
-又は-
sizeは、bufferの長さからoffset パラメーターの値を引いた値を超えています。
NetworkStream は閉じられます。
注釈
Important
これは互換性 API です。 新しい開発に APM (Begin/End) メソッドを使用することはお勧めしません。 代わりに、タスク ベースの同等のタスクを使用します。
操作の完了に関する通知を受け取るために、 AsyncCallback を実装するコールバックを BeginRead に渡すことができます。 基になるネットワーク スタックが操作を同期的に完了すると、コールバックはインラインで実行され、 BeginReadの呼び出し中に行われます。 この場合、返されたCompletedSynchronouslyのIAsyncResult プロパティは、メソッドが同期的に完了したことを示すtrueに設定されます。
AsyncState メソッドに渡された状態オブジェクトを取得するには、IAsyncResultのBeginRead プロパティを使用します。
EndRead メソッドを呼び出して、BeginRead操作を完了する必要があります。 通常、メソッドは、指定された AsyncCallback デリゲートによって呼び出されます。 EndRead は、操作が完了するまで呼び出し元のスレッドをブロックします。
操作は、 count パラメーターで指定されたバイト数まで、使用可能な量のデータを読み取ります。
注
IOExceptionを受け取った場合は、InnerException プロパティを調べて、SocketExceptionが原因かどうかを判断します。 その場合は、 ErrorCode プロパティを使用して、特定のエラー コードを取得します。
読み取り操作と書き込み操作は、同期を必要とせずに、 NetworkStream クラスのインスタンスで同時に実行できます。 書き込み操作に 1 つの一意のスレッドがあり、読み取り操作に 1 つの一意のスレッドがある限り、読み取りスレッドと書き込みスレッドの間にクロス干渉はなく、同期は必要ありません。