LogRecordSequence.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.
Inicia uma operação assíncrona de reserva e anexação.
Sobrecargas
| Name | Description |
|---|---|
| BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Inicia uma operação assíncrona de reserva e anexação. Este método não pode ser herdado. |
| BeginReserveAndAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object) |
Inicia uma operação assíncrona de reserva e anexação. Este método não pode ser herdado. |
BeginReserveAndAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, Int64[], AsyncCallback, Object)
Inicia uma operação assíncrona de reserva e anexação. Este método não pode ser herdado.
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
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.
Implementações
Exceções
userRecord ou previousRecord não é válida para esta sequência.
-ou-
data não pode ser acrescentado porque é maior do que o tamanho máximo do registo.
-ou-
reservations não foi criado por esta sequência de registos.
Um ou mais dos argumentos são null.
userRecord ou previousRecord não está entre os números base e último desta sequência.
O pedido não pôde ser realizado devido a uma exceção inesperada de I/O.
-ou-
O pedido não pôde ser realizado devido a um erro no dispositivo de E/S.
A operação não pode ser realizada porque a sequência de registos foi aberta com acesso apenas de leitura.
O método era chamado depois de a sequência ter sido eliminada.
Não há memória suficiente para continuar a execução do programa.
A sequência de discos está cheia.
O acesso para a sequência de registo especificada é negado pelo sistema operativo.
Não se encontra nenhuma reserva suficientemente grande para caber data em reservations.
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)
Inicia uma operação assíncrona de reserva e anexação. Este método não pode ser herdado.
public:
virtual IAsyncResult ^ BeginReserveAndAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, 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 userRecord, 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)), userRecord 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.
- userRecord
- 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.
Implementações
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.