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 di riserva e accodamento asincrona.
Overload
| Nome | Descrizione |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Avvia un'operazione di riserva e accodamento asincrona. Questo metodo non può essere ereditato. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Avvia un'operazione di riserva e accodamento asincrona. Questo metodo non può essere ereditato. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Avvia un'operazione di riserva e accodamento asincrona. 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 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.
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.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
Nessuna prenotazione abbastanza grande da adattarsi data è disponibile in reservations.
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)
Avvia un'operazione di riserva e accodamento asincrona. 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 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.
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.
Impossibile eseguire l'operazione perché la sequenza di record è stata aperta con accesso di sola lettura.
Impossibile eseguire la richiesta a causa di un'eccezione di I/O imprevista.
Il metodo è stato chiamato dopo che la sequenza è stata eliminata.
Memoria insufficiente per continuare l'esecuzione del programma.
La sequenza di record è piena.
Nessuna prenotazione abbastanza grande da adattarsi data è disponibile in reservations.
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 .