Compartilhar via


FileRecordSequence.BeginWriteRestartArea Método

Definição

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

Sobrecargas

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.

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>

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.

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

Um ou mais argumentos são null.

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

- ou -

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

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

- ou -

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

Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.

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

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.

A sequência de registros está cheia.

Nenhuma reserva suficientemente grande para se ajustar a data pode ser encontrada em reservations.

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 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 na geração de exceções quando o EndWriteRestartArea método for chamado.

Aplica-se a

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 ^ 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

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.

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

Um ou mais argumentos são null.

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

- ou -

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

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

- ou -

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

Não é possível executar a operação porque a sequência de registros foi aberta com acesso somente leitura.

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

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.

A sequência de registros está cheia.

Nenhuma reserva suficientemente grande para se ajustar a data pode ser encontrada em reservations.

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 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 na geração de exceções quando o EndWriteRestartArea método for chamado.

Aplica-se a