FileRecordSequence.BeginReserveAndAppend Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Avvia un'operazione asincrona di prenotazione e accodamento.
Overload
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Avvia un'operazione asincrona di prenotazione e accodamento. Questo metodo non può essere ereditato. |
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Avvia un'operazione asincrona di prenotazione e accodamento. Questo metodo non può essere ereditato. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Avvia un'operazione asincrona di prenotazione e accodamento. Questo metodo non può essere ereditato.
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
Parametri
- data
- ArraySegment<Byte>
Elenco di segmenti della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.
- reservationCollection
- ReservationCollection
raccolta di prenotazioni nella quale fare prenotazioni.
- reservations
- Int64[]
Prenotazioni da fare, in byte.
- callback
- AsyncCallback
Callback asincrono facoltativo, da chiamare quando l'accodamento è completo.
- state
- Object
Oggetto fornito dall'utente che distingue questa specifica richiesta di accodamento asincrona dalle altre richieste.
Restituisce
Interfaccia IAsyncResult che rappresenta questa operazione di cancellazione asincrona che può essere ancora in sospeso.
Implementazioni
Eccezioni
Uno o più argomenti sono null
.
Uno o più argomenti non sono compresi nell'intervallo.
reservations
non è stato creato da questa sequenza di record.
L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.
Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.
Il metodo è stato chiamato dopo l'eliminazione sequenza.
Memoria insufficiente per continuare l'esecuzione del programma.
Sequenza di record piena.
Impossibile trovare una prenotazione abbastanza grande da soddisfare il parametro data
in reservations
.
Commenti
È necessario passare l'oggetto IAsyncResult restituito da questo metodo al metodo EndReserveAndAppend, per avere la certezza che l'operazione di accodamento è stata completata e che sia possibile liberare le risorse appropriatamente. Se si è verificato un errore durante un accodamento asincrono, non viene generata alcuna eccezione fino a quando il metodo EndReserveAndAppend non viene chiamato con l'interfaccia IAsyncResult restituita da questo metodo.
I dati contenuti nel parametro data
verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.
Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita mediante un'operazione atomica con un'operazione di accodamento record. Se l'accodamento non riesce, non verrà riservato alcuno spazio.
In genere questo metodo può essere completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions
oppure chiamare il metodo Flush.
Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono immediatamente generate all'interno di questa operazione. Gli errori che si verificano durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante una richiesta di I/O, comporteranno la generazione di eccezioni quando viene chiamato il metodo EndReserveAndAppend.
Si applica a
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Avvia un'operazione asincrona di prenotazione e accodamento. Questo metodo non può essere ereditato.
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
Parametri
- data
- IList<ArraySegment<Byte>>
Elenco di segmenti della 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 RecordAppendOptions che specifica la modalità da utilizzare per la scrittura dei dati.
- reservationCollection
- ReservationCollection
raccolta di prenotazioni nella quale fare prenotazioni.
- reservations
- Int64[]
Prenotazioni da fare, in byte.
- callback
- AsyncCallback
Callback asincrono facoltativo, da chiamare quando l'accodamento è completo.
- state
- Object
Oggetto fornito dall'utente che distingue questa specifica richiesta di accodamento asincrona dalle altre richieste.
Restituisce
Interfaccia IAsyncResult che rappresenta questa operazione di cancellazione asincrona che può essere ancora in sospeso.
Implementazioni
Eccezioni
Uno o più argomenti sono null
.
Uno o più argomenti non sono compresi nell'intervallo.
reservations
non è stato creato da questa sequenza di record.
L'operazione non può essere eseguita perché la sequenza di record è stata aperta con accesso in sola lettura.
Impossibile eseguire la richiesta a causa di un'eccezione I/O imprevista.
Il metodo è stato chiamato dopo l'eliminazione sequenza.
Memoria insufficiente per continuare l'esecuzione del programma.
Sequenza di record piena.
Impossibile trovare una prenotazione abbastanza grande da soddisfare il parametro data
in reservations
.
Commenti
È necessario passare l'oggetto IAsyncResult restituito da questo metodo al metodo EndReserveAndAppend, per avere la certezza che l'operazione di accodamento è stata completata e che sia possibile liberare le risorse appropriatamente. Se si è verificato un errore durante un accodamento asincrono, non viene generata alcuna eccezione fino a quando il metodo EndReserveAndAppend non viene chiamato con l'interfaccia IAsyncResult restituita da questo metodo.
I dati contenuti nel parametro data
verranno concatenati in una matrice a byte singolo per essere quindi accodati come record. Tuttavia, non esiste alcun provisioning per suddividere dati in segmenti della matrice una volta letto il record.
Le prenotazioni specificate vengono aggiunte alla raccolta di prenotazioni fornita mediante un'operazione atomica con un'operazione di accodamento record. Se l'accodamento non riesce, non verrà riservato alcuno spazio.
In genere questo metodo può essere completato prima che il record sia stato scritto. Per garantire che un record è stato scritto, specificare il flag ForceFlush utilizzando il parametro recordAppendOptions
oppure chiamare il metodo Flush.
Se una sequenza di record è stata eliminata o se si passa un argomento non valido, le eccezioni vengono immediatamente generate all'interno di questa operazione. Gli errori che si verificano durante una richiesta di accodamento asincrona, ad esempio un errore del disco durante una richiesta di I/O, comporteranno la generazione di eccezioni quando viene chiamato il metodo EndReserveAndAppend.