FileRecordSequence.BeginReserveAndAppend Método

Definición

Comienza una operación asincrónica de reserva y anexión.

Sobrecargas

Nombre Description
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una operación asincrónica de reserva y anexión. Este método no se puede heredar.

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una operación asincrónica de reserva y anexión. Este método no se puede heredar.

BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una operación asincrónica de reserva y anexión. Este método no se puede heredar.

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

data
ArraySegment<Byte>

Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.

nextUndoRecord
SequenceNumber

Número de secuencia del siguiente registro en el orden especificado por el usuario.

previousRecord
SequenceNumber

Número de secuencia del siguiente registro en orden anterior.

recordAppendOptions
RecordAppendOptions

Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.

reservationCollection
ReservationCollection

Colección de reservas en la que se van a realizar reservas.

reservations
Int64[]

Las reservas que se van a realizar, en bytes.

callback
AsyncCallback

Se llamará a una devolución de llamada asincrónica opcional cuando se complete la anexión.

state
Object

Objeto proporcionado por el usuario que distingue esta solicitud de anexión asincrónica determinada de otras solicitudes.

Devoluciones

que IAsyncResult representa esta operación asincrónica, que todavía podría estar pendiente.

Implementaciones

Excepciones

Uno o varios de los argumentos son null.

Uno o varios de los argumentos están fuera del intervalo.

reservations esta secuencia de registros no la creó.

No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.

No se pudo realizar la solicitud debido a una excepción de E/S inesperada.

Se llamó al método después de eliminar la secuencia.

No hay memoria suficiente para continuar con la ejecución del programa.

La secuencia de registros está llena.

No se puede encontrar ninguna reserva lo suficientemente grande como para caber data en reservations.

Comentarios

Debe pasar el IAsyncResult devuelto por este método al EndReserveAndAppend método para asegurarse de que la operación de anexión se haya completado y que los recursos se puedan liberar correctamente. Si se ha producido un error durante una anexión asincrónica, no se produce una excepción hasta que se llama al EndReserveAndAppend método con el IAsyncResult devuelto por este método.

Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.

Las reservas especificadas se agregan a la colección de reservas proporcionada en una operación atómica con una operación de anexión de registros. Si se produce un error en la anexión, no se reserva ningún espacio.

Normalmente, este método puede completarse antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .

Si se ha eliminado una secuencia de registros o si se pasa un argumento no válido, las excepciones se inician inmediatamente dentro de esta operación. Los errores que se produjeron durante una solicitud de anexión asincrónica, por ejemplo, un error de disco durante la solicitud de E/S, darán lugar a excepciones que se producen cuando se llama al EndReserveAndAppend método .

Se aplica a

BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)

Comienza una operación asincrónica de reserva y anexión. Este método no se puede heredar.

public:
 virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservationCollection, cli::array <long> ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReserveAndAppend(System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservationCollection, long[] reservations, AsyncCallback callback, object state);
abstract member BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
override this.BeginReserveAndAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * int64[] * AsyncCallback * obj -> IAsyncResult
Public Function BeginReserveAndAppend (data As IList(Of ArraySegment(Of Byte)), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservationCollection As ReservationCollection, reservations As Long(), callback As AsyncCallback, state As Object) As IAsyncResult

Parámetros

data
IList<ArraySegment<Byte>>

Lista de segmentos de matriz de bytes que se concatenarán y anexarán como registro.

nextUndoRecord
SequenceNumber

Número de secuencia del siguiente registro en el orden especificado por el usuario.

previousRecord
SequenceNumber

Número de secuencia del siguiente registro en orden anterior.

recordAppendOptions
RecordAppendOptions

Valor válido de RecordAppendOptions que especifica cómo se deben escribir los datos.

reservationCollection
ReservationCollection

Colección de reservas en la que se van a realizar reservas.

reservations
Int64[]

Las reservas que se van a realizar, en bytes.

callback
AsyncCallback

Se llamará a una devolución de llamada asincrónica opcional cuando se complete la anexión.

state
Object

Objeto proporcionado por el usuario que distingue esta solicitud de anexión asincrónica determinada de otras solicitudes.

Devoluciones

que IAsyncResult representa esta operación asincrónica, que todavía podría estar pendiente.

Implementaciones

Excepciones

Uno o varios de los argumentos son null.

Uno o varios de los argumentos están fuera del intervalo.

reservations esta secuencia de registros no la creó.

No se puede realizar la operación porque la secuencia de registros se abrió con acceso de solo lectura.

No se pudo realizar la solicitud debido a una excepción de E/S inesperada.

Se llamó al método después de eliminar la secuencia.

No hay memoria suficiente para continuar con la ejecución del programa.

La secuencia de registros está llena.

No se puede encontrar ninguna reserva lo suficientemente grande como para caber data en reservations.

Comentarios

Debe pasar el IAsyncResult devuelto por este método al EndReserveAndAppend método para asegurarse de que la operación de anexión se haya completado y que los recursos se puedan liberar correctamente. Si se ha producido un error durante una anexión asincrónica, no se produce una excepción hasta que se llama al EndReserveAndAppend método con el IAsyncResult devuelto por este método.

Los datos contenidos en el data parámetro se concatenan en una sola matriz de bytes para anexarse como registro. Sin embargo, no se realiza ninguna disposición para dividir los datos en segmentos de matriz cuando se lee el registro.

Las reservas especificadas se agregan a la colección de reservas proporcionada en una operación atómica con una operación de anexión de registros. Si se produce un error en la anexión, no se reserva ningún espacio.

Normalmente, este método puede completarse antes de que se haya escrito el registro. Para asegurarse de que se ha escrito un registro, especifique la ForceFlush marca mediante el recordAppendOptions parámetro o llame al Flush método .

Si se ha eliminado una secuencia de registros o si se pasa un argumento no válido, las excepciones se inician inmediatamente dentro de esta operación. Los errores que se produjeron durante una solicitud de anexión asincrónica, por ejemplo, un error de disco durante la solicitud de E/S, darán lugar a excepciones que se producen cuando se llama al EndReserveAndAppend método .

Se aplica a