NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) メソッド

定義

ストリームへの非同期の書き込みを開始します。

public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::Object ^ state);
public:
 override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int size, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite (byte[] buffer, int offset, int size, AsyncCallback callback, object state);
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
override this.BeginWrite : byte[] * int * int * AsyncCallback * obj -> IAsyncResult
Public Overrides Function BeginWrite (buffer As Byte(), offset As Integer, size As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginWrite (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 の完了時に実行される BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) デリゲート。

state
Object

追加のユーザー定義のデータを格納するオブジェクト。

戻り値

非同期呼び出しを表す IAsyncResult

例外

buffer パラメーターが null です。

offset パラメーターが 0 未満です。

- または -

offset パラメーターが buffer の長さを超えています。

- または -

size パラメーターが 0 未満です。

- または -

size パラメーターが、buffer パラメーターの値を引いた offset の長さを超えています。

基になっている Socket が閉じています。

- または -

ネットワークへの書き込み中にエラーが発生しました。

- または -

ソケットへのアクセス中にエラーが発生しました。

NetworkStream が閉じています。

注釈

重要

これは互換性 API です。新しい開発に APM (Begin/End) メソッドを使用することはお勧めしません。 代わりに、タスク ベースの同等のものを使用します。

を実装AsyncCallbackBeginWriteするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 の BeginWrite呼び出し中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginWrite 使用します。

メソッドを BeginWrite 呼び出して操作を完了する EndWrite 必要があります。 通常、 メソッドは、指定 AsyncCallback されたデリゲートによって呼び出されます。 EndWrite は、操作が完了するまで呼び出し元のスレッドをブロックします。

Note

を受け取った場合は IOException、 プロパティを InnerException 調べて、 SocketExceptionが原因かどうかを確認します。 その場合は、 プロパティを ErrorCode 使用して特定のエラー コードを取得します。

読み取り操作と書き込み操作は、同期を必要とせずに、 クラスの NetworkStream インスタンスで同時に実行できます。 書き込み操作に一意のスレッドが 1 つあり、読み取り操作に 1 つの一意のスレッドがある限り、読み取りスレッドと書き込みスレッドの間に相互干渉はなく、同期は必要ありません。

適用対象

こちらもご覧ください