NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ストリームへの非同期書き込みを開始します。
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int count, AsyncCallback ^ callback, System::Object ^ state);
public:
override IAsyncResult ^ BeginWrite(cli::array <System::Byte> ^ buffer, int offset, int size, AsyncCallback ^ callback, System::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);
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, count As Integer, callback As AsyncCallback, state As Object) As IAsyncResult
Public Overrides Function BeginWrite (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
BeginWrite(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 を実装するコールバックを BeginWrite に渡すことができます。 基になるネットワーク スタックが操作を同期的に完了すると、コールバックはインラインで実行され、 BeginWriteの呼び出し中に行われます。 この場合、返されたCompletedSynchronouslyのIAsyncResult プロパティは、メソッドが同期的に完了したことを示すtrueに設定されます。
AsyncState メソッドに渡された状態オブジェクトを取得するには、IAsyncResultのBeginWrite プロパティを使用します。
EndWrite メソッドを呼び出して、BeginWrite操作を完了する必要があります。 通常、メソッドは、指定された AsyncCallback デリゲートによって呼び出されます。 EndWrite は、操作が完了するまで呼び出し元のスレッドをブロックします。
注
IOExceptionを受け取った場合は、InnerException プロパティを調べて、SocketExceptionが原因かどうかを判断します。 その場合は、 ErrorCode プロパティを使用して、特定のエラー コードを取得します。
読み取り操作と書き込み操作は、同期を必要とせずに、 NetworkStream クラスのインスタンスで同時に実行できます。 書き込み操作に 1 つの一意のスレッドがあり、読み取り操作に 1 つの一意のスレッドがある限り、読み取りスレッドと書き込みスレッドの間にクロス干渉はなく、同期は必要ありません。