Condividi tramite


FileRecordSequence.BeginWriteRestartArea Metodo

Definizione

Inizia un'operazione asincrona di scrittura dell'area di riavvio.

Overload

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Avvia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Avvia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.

BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Avvia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (ArraySegment<byte> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As ArraySegment(Of Byte), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, 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.

newBaseSeqNum
SequenceNumber

Nuovo numero di sequenza di base. Il numero di sequenza specificato deve essere maggiore o uguale al numero di sequenza di base corrente.

reservation
ReservationCollection

Classe ReservationCollection contenente la prenotazione da utilizzare per questa area di riavvio.

callback
AsyncCallback

Callback asincrono facoltativo, da chiamare quando la scrittura dell'area di riavvio è stata completata.

state
Object

Oggetto fornito dall'utente che distingue questa specifica richiesta asincrona di scrittura dell'area di riavvio da altre richieste.

Restituisce

Interfaccia IAsyncResult che rappresenta l'operazione asincrona di scrittura dell'area di riavvio che può essere ancora in sospeso.

Implementazioni

Eccezioni

Uno o più argomenti sono null.

newBaseSeqNum non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

-oppure-

Una coda o base di archivio nuova o esistente del log attivo non è valida.

reservations non è stato creato da questa sequenza di record.

-oppure-

newBaseSeqNum non è valido per questa sequenza.

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'interfaccia IAsyncResult restituita da questo metodo al metodo EndWriteRestartArea per garantire che l'operazione di scrittura dell'area di riavvio sia stata completata e che sia possibile liberare risorse in modo appropriato. Se si è verificato un errore durante un'operazione asincrona di scrittura dell'area di riavvio, non viene generata alcuna eccezione fino a quando il metodo EndWriteRestartArea 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.

Quando l'operazione viene completata senza che si verifichino errori, il numero di sequenza di base viene aggiornato. Tutti i record del registro con numeri di sequenza inferiori al nuovo numero di base sono inaccessibili.

Se viene specificato una raccolta ReservationCollection, l'area di riavvio scritta utilizzerà spazio precedentemente riservato utilizzando una prenotazione contenuta nella raccolta. Se ha esito positivo, il metodo utilizzerà la prenotazione più piccola che possa contenere i dati e tale prenotazione verrà rimossa dalla raccolta.

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 EndWriteRestartArea.

Si applica a

BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)

Avvia un'operazione asincrona di scrittura dell'area di riavvio utilizzando spazio precedentemente riservato nella sequenza. Questo metodo non può essere ereditato.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservation, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservation, AsyncCallback callback, object state);
abstract member BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginWriteRestartArea : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginWriteRestartArea (data As IList(Of ArraySegment(Of Byte)), newBaseSeqNum As SequenceNumber, reservation As ReservationCollection, 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.

newBaseSeqNum
SequenceNumber

Nuovo numero di sequenza di base. Il numero di sequenza specificato deve essere maggiore o uguale al numero di sequenza di base corrente.

reservation
ReservationCollection

Classe ReservationCollection contenente la prenotazione da utilizzare per questa area di riavvio.

callback
AsyncCallback

Callback asincrono facoltativo, da chiamare quando la scrittura dell'area di riavvio è stata completata.

state
Object

Oggetto fornito dall'utente che distingue questa specifica richiesta asincrona di scrittura dell'area di riavvio da altre richieste.

Restituisce

Interfaccia IAsyncResult che rappresenta l'operazione asincrona di scrittura dell'area di riavvio che può essere ancora in sospeso.

Implementazioni

Eccezioni

Uno o più argomenti sono null.

newBaseSeqNum non è compreso tra i numeri di sequenza di base e finale di questa sequenza.

-oppure-

Una coda o base di archivio nuova o esistente del log attivo non è valida.

reservations non è stato creato da questa sequenza di record.

-oppure-

newBaseSeqNum non è valido per questa sequenza.

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'interfaccia IAsyncResult restituita da questo metodo al metodo EndWriteRestartArea per garantire che l'operazione di scrittura dell'area di riavvio sia stata completata e che sia possibile liberare risorse in modo appropriato. Se si è verificato un errore durante un'operazione asincrona di scrittura dell'area di riavvio, non viene generata alcuna eccezione fino a quando il metodo EndWriteRestartArea 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.

Quando l'operazione viene completata senza che si verifichino errori, il numero di sequenza di base viene aggiornato. Tutti i record del registro con numeri di sequenza inferiori al nuovo numero di base sono inaccessibili.

Se viene specificato una raccolta ReservationCollection, l'area di riavvio scritta utilizzerà spazio precedentemente riservato utilizzando una prenotazione contenuta nella raccolta. Se ha esito positivo, il metodo utilizzerà la prenotazione più piccola che possa contenere i dati e tale prenotazione verrà rimossa dalla raccolta.

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 EndWriteRestartArea.

Si applica a