IRecordSequence.BeginReserveAndAppend Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Quando sobreposto numa classe derivada, inicia-se uma operação assíncrona de reserva e anexação.
Sobrecargas
| Name | Description |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Quando sobreposto numa classe derivada, inicia-se uma operação assíncrona de reserva e anexação. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Quando sobreposto numa classe derivada, inicia-se uma operação assíncrona de reserva e anexação. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Quando sobreposto numa classe derivada, inicia-se uma operação assíncrona de reserva e anexação.
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 array de bytes que serão concatenados e adicionados como registo.
- nextUndoRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
- reservationCollection
- ReservationCollection
A recolha de reservas para fazer reservas em.
- reservations
- Int64[]
As reservas a fazer, em bytes.
- callback
- AsyncCallback
Um callback assíncrono opcional, a ser chamado quando o anexo estiver concluído.
- state
- Object
Um objeto fornecido pelo utilizador que distingue este pedido de adição assíncrono particular de outros pedidos.
Devoluções
An IAsyncResult que representa esta operação assíncrona, que ainda pode estar pendente.
Exceções
Um ou mais dos argumentos são inválidos.
Ocorreu um erro de I/O durante a anexação do registo.
A sequência de registos não conseguiu abrir espaço livre suficiente para conter o novo registo, nem para fazer a reserva.
O método era chamado depois de a sequência ter sido eliminada.
Observações
Deve passar o IAsyncResult retorno por este método para o EndReserveAndAppend método para garantir que a operação de anexação foi concluída e que os recursos podem ser devidamente libertados. Se ocorrer um erro durante uma adição assíncrona, uma exceção não é lançada até que o EndReserveAndAppend método seja chamado com o IAsyncResult retorno por este método.
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
As reservas especificadas são adicionadas à coleção de reservas fornecida numa operação atómica com uma operação de anexação de registos. Se o anexo falhar, não há espaço reservado.
Normalmente, este método pode concluir-se antes de o registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.
Se uma sequência de registos tiver sido eliminada, ou se passar um argumento inválido, exceções são lançadas imediatamente dentro desta operação. Erros que ocorreram durante um pedido de adição assíncrono, por exemplo, uma falha de disco durante o pedido de E/S, resultarão em exceções lançadas quando o EndReserveAndAppend método for chamado.
Aplica-se a
BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Quando sobreposto numa classe derivada, inicia-se uma operação assíncrona de reserva e anexação.
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 array de bytes que serão concatenados e adicionados como registo.
- nextUndoRecord
- SequenceNumber
O número de sequência do registo seguinte na ordem especificada pelo utilizador.
- previousRecord
- SequenceNumber
O número de sequência do próximo registo na ordem Anterior.
- recordAppendOptions
- RecordAppendOptions
Um valor válido de RecordAppendOptions isso especifica como os dados devem ser escritos.
- reservationCollection
- ReservationCollection
A recolha de reservas para fazer reservas em.
- reservations
- Int64[]
As reservas a fazer, em bytes.
- callback
- AsyncCallback
Um callback assíncrono opcional, a ser chamado quando o anexo estiver concluído.
- state
- Object
Um objeto fornecido pelo utilizador que distingue este pedido de adição assíncrono particular de outros pedidos.
Devoluções
An IAsyncResult que representa esta operação assíncrona, que ainda pode estar pendente.
Exceções
Um ou mais dos argumentos são inválidos.
Ocorreu um erro de I/O durante a anexação do registo.
A sequência de registos não conseguiu abrir espaço livre suficiente para conter o novo registo, nem para fazer a reserva.
O método era chamado depois de a sequência ter sido eliminada.
Observações
Deve passar o IAsyncResult retorno por este método para o EndReserveAndAppend método para garantir que a operação de anexação foi concluída e que os recursos podem ser devidamente libertados. Se ocorrer um erro durante uma adição assíncrona, uma exceção não é lançada até que o EndReserveAndAppend método seja chamado com o IAsyncResult retorno por este método.
Os dados contidos no data parâmetro serão concatenados num array de um único byte para serem adicionados como registo. No entanto, não é prevista a divisão dos dados em segmentos de array quando o registo é lido.
As reservas especificadas são adicionadas à coleção de reservas fornecida numa operação atómica com uma operação de anexação de registos. Se o anexo falhar, não há espaço reservado.
Normalmente, este método pode concluir-se antes de o registo ter sido escrito. Para garantir que um registo foi escrito, especifique o ForceFlush flag usando o recordAppendOptions parâmetro ou chame o Flush método.
Se uma sequência de registos tiver sido eliminada, ou se passar um argumento inválido, exceções são lançadas imediatamente dentro desta operação. Erros que ocorreram durante um pedido de adição assíncrono, por exemplo, uma falha de disco durante o pedido de E/S, resultarão em exceções lançadas quando o EndReserveAndAppend método for chamado.