Compartilhar via


LogRecordSequence.BeginWriteRestartArea Método

Definição

Começa uma operação de gravação de área de reinicialização assíncrona.

Sobrecargas

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

Começa uma operação de gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.

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

Começa uma operação de gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.

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

Começa uma operação de gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.

public:
 virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservationCollection, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservationCollection, 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, reservationCollection As ReservationCollection, 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.

newBaseSeqNum
SequenceNumber

O novo número de sequência de base. O número de sequência especificado deve ser maior ou igual ao número de sequência de base atual.

reservationCollection
ReservationCollection

Um ReservationCollection que contém a reserva que deve ser usada para esta área de reinicialização.

callback
AsyncCallback

Um retorno de chamada assíncrona opcional, a ser chamada quando a gravação da área de reinicialização for concluída.

state
Object

Um objeto fornecido pelo usuário que distingue essa solicitação de gravação de área de reinicialização assíncrona específica de outras solicitações.

Retornos

Um IAsyncResult que representa a operação de gravação da área de reinicialização assíncrona, que ainda pode estar pendente.

Implementações

Exceções

newBaseSeqNum não é válido para essa sequência.

- ou -

O número de sequência de início de enumeração de log especificado é inválido.

- ou -

data não pode ser anexado porque é maior que o tamanho máximo do registro.

- ou -

reservationCollection não foi criado por essa sequência de registro.

Um ou mais dos parâmetros é null.

Uma cauda ou base de um arquivo novo ou existente do registro ativo é inválida.

- ou -

newBaseSeqNum não está entre os números de base e de última sequência dessa sequência.

A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.

- ou -

Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.

O método foi chamado depois que a sequência foi descartada.

Não há memória suficiente para continuar a execução do programa.

O acesso para a sequência de log especificada foi negado pelo sistema operacional.

A sequência de registros está cheia.

Comentários

Você deve passar o IAsyncResult retornado por esse método para o EndWriteRestartArea método para garantir que a operação de gravação da área de reinicialização tenha sido concluída e que os recursos possam ser liberados adequadamente. Se ocorrer um erro durante uma operação de gravação de área de reinicialização assíncrona, uma exceção não será gerada até que o EndWriteRestartArea 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.

Quando a operação for concluída com êxito, o número da sequência base será atualizado. Todos os registros de log com números de sequência menores que o novo número de sequência base são inacessíveis.

Se um ReservationCollection for especificado, a área de reinicialização por escrito consumirá o espaço que foi reservado anteriormente, usando uma reserva contida na coleção. Se o método for bem-sucedido, ele consumirá a menor reserva que pode conter os dados e essa reserva será removida da coleção.

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 que ocorreram durante uma solicitação de acréscimo assíncrona, por exemplo, uma falha de disco durante a solicitação de E/S, resultarão na geração de exceções quando o EndWriteRestartArea método for chamado.

Aplica-se a

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

Começa uma operação de gravação de área de reinicialização assíncrona, usando o espaço reservado anteriormente na sequência. Esse método não pode ser herdado.

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

Parâmetros

data
ArraySegment<Byte>

Segmentos de matriz de bytes que serão concatenados e acrescentados como o registro.

newBaseSeqNum
SequenceNumber

O novo número de sequência de base. O número de sequência especificado deve ser maior ou igual ao número de sequência de base atual.

reservation
ReservationCollection

Um ReservationCollection que contém a reserva que deve ser usada para esta área de reinicialização.

callback
AsyncCallback

Um retorno de chamada assíncrona opcional, a ser chamada quando a gravação da área de reinicialização for concluída.

state
Object

Um objeto fornecido pelo usuário que distingue essa solicitação de gravação de área de reinicialização assíncrona específica de outras solicitações.

Retornos

Um IAsyncResult que representa a operação de gravação da área de reinicialização assíncrona, que ainda pode estar pendente.

Implementações

Exceções

newBaseSeqNum não é válido para essa sequência.

- ou -

O número de sequência de início de enumeração de log especificado é inválido.

- ou -

data não pode ser anexado porque é maior que o tamanho máximo do registro.

- ou -

reservation não foi criado por essa sequência de registro.

Um ou mais dos parâmetros é null.

Uma cauda ou base de um arquivo novo ou existente do registro ativo é inválida.

- ou -

newBaseSeqNum não está entre os números de base e de última sequência dessa sequência.

A solicitação não pôde ser executada devido a uma exceção de E/S inesperada.

- ou -

Não foi possível executar a solicitação devido a um erro de dispositivo de E/S.

O método foi chamado depois que a sequência foi descartada.

Não há memória suficiente para continuar a execução do programa.

O acesso para a sequência de log especificada foi negado pelo sistema operacional.

A sequência de registros está cheia.

Comentários

Você deve passar o IAsyncResult retornado por esse método para o EndWriteRestartArea método para garantir que a operação de gravação da área de reinicialização tenha sido concluída e que os recursos possam ser liberados adequadamente. Se ocorrer um erro durante uma operação de gravação de área de reinicialização assíncrona, uma exceção não será gerada até que o EndWriteRestartArea 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.

Quando a operação for concluída com êxito, o número da sequência base será atualizado. Todos os registros de log com números de sequência menores que o novo número de sequência base são inacessíveis.

Se um ReservationCollection for especificado, a área de reinicialização por escrito consumirá o espaço que foi reservado anteriormente, usando uma reserva contida na coleção. Se o método for bem-sucedido, ele consumirá a menor reserva que pode conter os dados e essa reserva será removida da coleção.

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 que ocorreram durante uma solicitação de acréscimo assíncrona, por exemplo, uma falha de disco durante a solicitação de E/S, resultarão na geração de exceções quando o EndWriteRestartArea método for chamado.

Aplica-se a