Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Stream.BeginWrite (Byte[], Int32, Int32, AsyncCallback, Object)

 

Publicado: octubre de 2016

Comienza una operación de escritura asincrónica. (Utilice WriteAsync en su lugar; vea la sección Comentarios).

Espacio de nombres:   System.IO
Ensamblado:  mscorlib (en mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, ExternalThreading = true)]
public virtual IAsyncResult BeginWrite(
	byte[] buffer,
	int offset,
	int count,
	AsyncCallback callback,
	object state
)

Parámetros

buffer
Type: System.Byte[]

Búfer del que se van a escribir datos.

offset
Type: System.Int32

Desplazamiento de bytes en buffer donde debe comenzar la escritura.

count
Type: System.Int32

Número máximo de bytes que se pueden escribir.

callback
Type: System.AsyncCallback

Devolución de llamada asincrónica opcional, a la que se llamará cuando haya finalizado la escritura.

state
Type: System.Object

Objeto proporcionado por el usuario que distingue esta solicitud de lectura asincrónica de otras.

Valor devuelto

Type: System.IAsyncResult

IAsyncResult que representa la escritura asincrónica, que puede hallarse aún pendiente.

Exception Condition
IOException

Se intentó una escritura asincrónica más allá del final de la secuencia, o se produce un error de disco.

ArgumentException

Uno o varios argumentos no son válidos.

ObjectDisposedException

Se efectuó una llamada a los métodos después de cerrar la secuencia.

NotSupportedException

Actual Stream implementación no admite la operación de escritura.

En .NET Framework 4 y versiones anteriores, es necesario usar métodos como BeginWrite y EndWrite para implementar operaciones de E/S asincrónicas. Estos métodos siguen estando disponibles en la .NET Framework 4.5 para admitir código heredado; sin embargo, los nuevos métodos asincrónicos, como ReadAsync, WriteAsync, CopyToAsync, y FlushAsync, ayuda al implementar operaciones asincrónicas de E/S más fácilmente.

La implementación predeterminada de BeginWrite en una secuencia de llamadas del Write método sincrónicamente, lo que significa que Write puede bloquearse en algunas secuencias. Sin embargo, las instancias de clases como FileStream y NetworkStream admiten totalmente las operaciones asincrónicas si las instancias se han abierto de forma asincrónica. Por lo tanto, las llamadas a BeginWrite no se bloquearán en esas secuencias. Puede invalidar BeginWrite (mediante delegados asincrónicos, por ejemplo) para proporcionar un comportamiento asincrónico.

Pasar la IAsyncResult devuelta por el método actual a EndWrite para asegurarse de que la escritura finalice y libere los recursos como corresponde. EndWrite debe llamarse una vez por cada llamada a BeginWrite. Puede hacerlo usando el mismo código que llama BeginWrite o en una devolución de llamada pasada a BeginWrite. Si se produce un error durante la escritura asincrónica, no se producirá una excepción hasta que EndWrite se llama con el IAsyncResult devuelto por este método.

Si una secuencia admite escritura, escribir al final de la secuencia expande la secuencia.

La posición actual en la secuencia se actualiza al emitir la lectura o escritura asincrónica, no cuando finaliza la operación de E/S. Varias solicitudes asincrónicas simultáneas representan el orden de finalización de la solicitud incierto.

Utilice la CanWrite propiedad para determinar si la instancia actual admite escritura.

Si una secuencia está cerrada o se pasa un argumento no válido, se producirán inmediatamente excepciones de BeginWrite. Errores que se producen durante una solicitud de escritura asincrónica, como un error de disco durante la solicitud de E/S, tienen lugar en el subproceso del grupo y las excepciones al llamar a EndWrite.

.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: