CryptoStream.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 operación de escritura asincrónica. (Considere la posibilidad de usar WriteAsync en su lugar).
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 count, AsyncCallback? callback, object? state);
public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state);
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
Parámetros
- buffer
- Byte[]
Búfer desde el que se van a escribir datos.
- offset
- Int32
Desplazamiento de bytes en el buffer que se va a empezar a escribir.
- count
- Int32
Número máximo de bytes que se van a escribir.
- callback
- AsyncCallback
Se llamará a una devolución de llamada asincrónica opcional cuando se complete la escritura.
- state
- Object
Objeto proporcionado por el usuario que distingue esta solicitud de escritura asincrónica determinada de otras solicitudes.
Devoluciones
que IAsyncResult representa la escritura asincrónica, que todavía podría estar pendiente.
Excepciones
Se intentó una escritura asincrónica más allá del final de la secuencia o se produjo un error de disco.
Uno o varios argumentos no son válidos.
Se llamó a los métodos después de cerrar la secuencia.
La implementación actual Stream no admite la operación de escritura.
Comentarios
En .NET Framework 4 y versiones anteriores, tiene que usar métodos como BeginWrite y EndWrite para implementar operaciones asincrónicas de E/S. Estos métodos siguen estando disponibles en las versiones actuales para admitir código heredado; sin embargo, los nuevos métodos asincrónicos, como ReadAsync, WriteAsync, CopyToAsyncy FlushAsync, le ayudan a implementar operaciones asincrónicas de E/S más fácilmente.
Pase el IAsyncResult devuelto por el método actual para EndWrite asegurarse de que la escritura se completa y libera los recursos correctamente.
EndWrite se debe llamar una vez para cada llamada a BeginWrite. Puede hacerlo mediante el mismo código que llamó BeginWrite o en una devolución de llamada pasada a BeginWrite. Si se produce un error durante una escritura asincrónica, no se producirá una excepción hasta EndWrite que se llame a con el IAsyncResult devuelto por este método.
Si se puede escribir una secuencia, escribir al final de la secuencia expande la secuencia.
La posición actual de la secuencia se actualiza cuando se emite la lectura o escritura asincrónica, no cuando se completa la operación de E/S. Varias solicitudes asincrónicas simultáneas representan el orden de finalización de la solicitud incierta.
Use la CanWrite propiedad para determinar si la instancia actual admite la escritura.
Si se cierra una secuencia o se pasa un argumento no válido, las excepciones se inician inmediatamente desde BeginWrite. Los errores que se producen durante una solicitud de escritura asincrónica, como un error de disco durante la solicitud de E/S, se producen en el subproceso del grupo de subprocesos y producen excepciones al llamar a EndWrite.