IRecordSequence.BeginReserveAndAppend Metodo

Definizione

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di riserva e accodamento.

Overload

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di riserva e accodamento.

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di riserva e accodamento.

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di riserva e accodamento.

public:
 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
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

Parametri

data
ArraySegment<Byte>

Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.

nextUndoRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine specificato dall'utente.

previousRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine precedente.

recordAppendOptions
RecordAppendOptions

Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.

reservationCollection
ReservationCollection

Raccolta di prenotazioni in cui effettuare prenotazioni.

reservations
Int64[]

Prenotazioni da effettuare, in byte.

callback
AsyncCallback

Callback asincrono facoltativo da chiamare al termine dell'accodamento.

state
Object

Oggetto fornito dall'utente che distingue questa particolare richiesta di accodamento asincrona da altre richieste.

Valori restituiti

Oggetto IAsyncResult che rappresenta questa operazione asincrona, che potrebbe essere ancora in sospeso.

Eccezioni

Uno o più argomenti non sono validi.

Errore di I/O durante l'aggiunta del record.

La sequenza di record non è riuscita a liberare spazio sufficiente per contenere il nuovo record o per effettuare la prenotazione.

Il metodo è stato chiamato dopo che la sequenza è stata eliminata.

Commenti

È necessario passare l'oggetto IAsyncResult restituito da questo metodo al EndReserveAndAppend metodo per assicurarsi che l'operazione di accodamento sia stata completata e che le risorse possano essere liberate in modo appropriato. Se si è verificato un errore durante un accodamento asincrono, non viene generata un'eccezione finché il EndReserveAndAppend metodo non viene chiamato con l'oggetto IAsyncResult restituito da questo metodo.

I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.

Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita in un'operazione atomica con un'operazione di accodamento di record. Se l'accodamento non riesce, non viene riservato alcuno spazio.

In genere, questo metodo può essere completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .

Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono generate immediatamente all'interno di questa operazione. Gli errori che si sono verificati durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante la richiesta di I/O, genereranno eccezioni generate quando viene chiamato il EndReserveAndAppend metodo .

Si applica a

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

Quando sottoposto a override in una classe derivata, avvia un'operazione asincrona di riserva e accodamento.

public:
 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
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

Parametri

data
IList<ArraySegment<Byte>>

Elenco di segmenti di matrice di byte che verranno concatenati e accodati come record.

nextUndoRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine specificato dall'utente.

previousRecord
SequenceNumber

Numero di sequenza del record successivo nell'ordine precedente.

recordAppendOptions
RecordAppendOptions

Valore valido di che specifica la modalità di RecordAppendOptions scrittura dei dati.

reservationCollection
ReservationCollection

Raccolta di prenotazioni in cui effettuare prenotazioni.

reservations
Int64[]

Prenotazioni da effettuare, in byte.

callback
AsyncCallback

Callback asincrono facoltativo da chiamare al termine dell'accodamento.

state
Object

Oggetto fornito dall'utente che distingue questa particolare richiesta di accodamento asincrona da altre richieste.

Valori restituiti

Oggetto IAsyncResult che rappresenta questa operazione asincrona, che potrebbe essere ancora in sospeso.

Eccezioni

Uno o più argomenti non sono validi.

Errore di I/O durante l'aggiunta del record.

La sequenza di record non è riuscita a liberare spazio sufficiente per contenere il nuovo record o per effettuare la prenotazione.

Il metodo è stato chiamato dopo che la sequenza è stata eliminata.

Commenti

È necessario passare l'oggetto IAsyncResult restituito da questo metodo al EndReserveAndAppend metodo per assicurarsi che l'operazione di accodamento sia stata completata e che le risorse possano essere liberate in modo appropriato. Se si è verificato un errore durante un accodamento asincrono, non viene generata un'eccezione finché il EndReserveAndAppend metodo non viene chiamato con l'oggetto IAsyncResult restituito da questo metodo.

I dati contenuti nel data parametro verranno concatenati in una singola matrice di byte per l'aggiunta come record. Tuttavia, non viene effettuato alcun provisioning per la suddivisione dei dati in segmenti di matrice quando il record viene letto.

Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita in un'operazione atomica con un'operazione di accodamento di record. Se l'accodamento non riesce, non viene riservato alcuno spazio.

In genere, questo metodo può essere completato prima della scrittura del record. Per assicurarsi che sia stato scritto un record, specificare il ForceFlush flag usando il recordAppendOptions parametro o chiamare il Flush metodo .

Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono generate immediatamente all'interno di questa operazione. Gli errori che si sono verificati durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante la richiesta di I/O, genereranno eccezioni generate quando viene chiamato il EndReserveAndAppend metodo .

Si applica a