IRecordSequence.BeginReserveAndAppend Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Quando substituído em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona.
Sobrecargas
| Nome | Description |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Quando substituído em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Quando substituído em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Quando substituído em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona.
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
Parâmetros
- data
- ArraySegment<Byte>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- nextUndoRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor RecordAppendOptions válido que especifica como os dados devem ser gravados.
- reservationCollection
- ReservationCollection
A coleção de reservas na qual fazer reservas.
- reservations
- Int64[]
As reservas a serem criadas, em bytes.
- callback
- AsyncCallback
Um retorno de chamada assíncrono opcional, a ser chamado quando o acréscimo for concluído.
- state
- Object
Um objeto fornecido pelo usuário que distingue essa solicitação de acréscimo assíncrona específica de outras solicitações.
Retornos
Um IAsyncResult que representa essa operação assíncrona, que ainda pode estar pendente.
Exceções
Um ou mais argumentos são inválidos.
Ocorreu um erro de E/S ao acrescentar o registro.
A sequência de registros não pôde abrir espaço livre suficiente para conter o novo registro ou fazer a reserva.
O método foi chamado depois que a sequência foi descartada.
Comentários
Você deve passar o IAsyncResult retornado por esse método para o EndReserveAndAppend método para garantir que a operação de acréscimo tenha sido concluída e que os recursos possam ser liberados adequadamente. Se ocorrer um erro durante um acréscimo assíncrono, uma exceção não será gerada até que o EndReserveAndAppend método seja chamado com o IAsyncResult retornado por esse método.
Os dados contidos no data parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
As reservas especificadas são adicionadas à coleção de reservas fornecida em uma operação atômica com uma operação de acréscimo de registro. Se o acréscimo falhar, nenhum espaço será reservado.
Normalmente, esse método pode ser concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions parâmetro ou chame o Flush método.
Se uma sequência de registros tiver sido descartada ou se você passar um argumento inválido, as exceções serão lançadas imediatamente dentro dessa operação. Erros ocorridos durante uma solicitação de acréscimo assíncrona, por exemplo, uma falha de disco durante a solicitação de E/S, resultarão em exceções geradas quando o EndReserveAndAppend método for chamado.
Aplica-se a
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Quando substituído em uma classe derivada, inicia uma operação de reserva e acréscimo assíncrona.
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
Parâmetros
- data
- IList<ArraySegment<Byte>>
Uma lista de segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.
- nextUndoRecord
- SequenceNumber
O número de sequência do próximo registro na ordem especificada pelo usuário.
- previousRecord
- SequenceNumber
O número de sequência do próximo registro na ordem anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor RecordAppendOptions válido que especifica como os dados devem ser gravados.
- reservationCollection
- ReservationCollection
A coleção de reservas na qual fazer reservas.
- reservations
- Int64[]
As reservas a serem criadas, em bytes.
- callback
- AsyncCallback
Um retorno de chamada assíncrono opcional, a ser chamado quando o acréscimo for concluído.
- state
- Object
Um objeto fornecido pelo usuário que distingue essa solicitação de acréscimo assíncrona específica de outras solicitações.
Retornos
Um IAsyncResult que representa essa operação assíncrona, que ainda pode estar pendente.
Exceções
Um ou mais argumentos são inválidos.
Ocorreu um erro de E/S ao acrescentar o registro.
A sequência de registros não pôde abrir espaço livre suficiente para conter o novo registro ou fazer a reserva.
O método foi chamado depois que a sequência foi descartada.
Comentários
Você deve passar o IAsyncResult retornado por esse método para o EndReserveAndAppend método para garantir que a operação de acréscimo tenha sido concluída e que os recursos possam ser liberados adequadamente. Se ocorrer um erro durante um acréscimo assíncrono, uma exceção não será gerada até que o EndReserveAndAppend método seja chamado com o IAsyncResult retornado por esse método.
Os dados contidos no data parâmetro serão concatenados em uma única matriz de bytes para acrescentar como o registro. No entanto, nenhuma provisão é feita para dividir dados novamente em segmentos de matriz quando o registro é lido.
As reservas especificadas são adicionadas à coleção de reservas fornecida em uma operação atômica com uma operação de acréscimo de registro. Se o acréscimo falhar, nenhum espaço será reservado.
Normalmente, esse método pode ser concluído antes da gravação do registro. Para garantir que um registro tenha sido gravado, especifique o ForceFlush sinalizador usando o recordAppendOptions parâmetro ou chame o Flush método.
Se uma sequência de registros tiver sido descartada ou se você passar um argumento inválido, as exceções serão lançadas imediatamente dentro dessa operação. Erros ocorridos durante uma solicitação de acréscimo assíncrona, por exemplo, uma falha de disco durante a solicitação de E/S, resultarão em exceções geradas quando o EndReserveAndAppend método for chamado.