NetworkStream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Comienza una escritura asincrónica en una secuencia.
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
Parámetros
- buffer
- Byte[]
Matriz de tipo Byte que contiene los datos que se van a escribir en .NetworkStream
- offset
- Int32
Ubicación de para buffer empezar a enviar los datos.
- countsize
- Int32
Número de bytes que se van a escribir en .NetworkStream
- callback
- AsyncCallback
AsyncCallback Delegado que se ejecuta cuando BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) se completa.
- state
- Object
Objeto que contiene datos adicionales definidos por el usuario.
Devoluciones
que IAsyncResult representa la llamada asincrónica.
Excepciones
El buffer parámetro es null.
El offset parámetro es menor que 0.
O bien
El offset parámetro es mayor que la longitud de buffer.
O bien
El size parámetro es menor que 0.
O bien
El size parámetro es mayor que la longitud de buffer menos el valor del offset parámetro.
El subyacente Socket está cerrado.
O bien
Error al escribir en la red.
O bien
Error al acceder al socket.
NetworkStream Está cerrado.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin/End) para el nuevo desarrollo. En su lugar, use los equivalentes basados en tareas.
Puede pasar una devolución de llamada que se AsyncCallbackBeginWrite implemente en para recibir una notificación sobre la finalización de la operación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, la devolución de llamada se ejecutará en línea, durante la llamada a BeginWrite. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginWrite método .
La BeginWrite operación debe completarse llamando al EndWrite método . Normalmente, el delegado proporcionado AsyncCallback invoca el método . EndWrite bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Nota:
Si recibe un IOException, compruebe la InnerException propiedad para determinar si fue causada por .SocketException Si es así, use la ErrorCode propiedad para obtener el código de error específico.
Las operaciones de lectura y escritura se pueden realizar simultáneamente en una instancia de la NetworkStream clase sin necesidad de sincronización. Siempre que haya un subproceso único para las operaciones de escritura y un subproceso único para las operaciones de lectura, no habrá interferencias cruzadas entre subprocesos de lectura y escritura y no se requiere ninguna sincronización.