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