LogRecordSequence.BeginFlush(SequenceNumber, AsyncCallback, Object) 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.
Inicia uma operação de liberação assíncrona, usando o espaço previamente reservado na sequência. Esse método não pode ser herdado.
public:
virtual IAsyncResult ^ BeginFlush(System::IO::Log::SequenceNumber sequenceNumber, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginFlush(System.IO.Log.SequenceNumber sequenceNumber, AsyncCallback callback, object state);
abstract member BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
override this.BeginFlush : System.IO.Log.SequenceNumber * AsyncCallback * obj -> IAsyncResult
Public Function BeginFlush (sequenceNumber As SequenceNumber, callback As AsyncCallback, state As Object) As IAsyncResult
Parâmetros
- sequenceNumber
- SequenceNumber
O número de sequência do registro mais recente que deve ser gravado. Se isso SequenceNumber for inválido, todos os registros deverão ser gravados.
- callback
- AsyncCallback
Um retorno de chamada assíncrono opcional, a ser chamado quando a liberação for concluída.
- state
- Object
Um objeto fornecido pelo usuário que distingue essa solicitação de liberação assíncrona específica de outras solicitações.
Retornos
Um IAsyncResult que representa a operação de liberação assíncrona, que ainda pode estar pendente.
Implementações
Exceções
sequenceNumber não é válido para essa sequência.
sequenceNumber não está entre os números base e de última sequência dessa sequência.
A solicitação não pôde ser executada devido a uma exceção inesperada de E/S.
O log especificado não tem nenhuma extensão. Uma ou mais extensões devem ser criadas antes que uma sequência de registros possa ser usada.
A operação não pode ser executada porque a sequência de registros foi aberta com acesso somente leitura.
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.
O acesso para a sequência de log especificada é negado pelo sistema operacional.
Comentários
Você deve passar o IAsyncResult método retornado pelo método atual para o EndFlush método para garantir que a liberação seja concluída e os recursos sejam liberados adequadamente. Se ocorrer um erro durante uma liberação assíncrona, uma exceção não será gerada até que o EndFlush método seja chamado com o IAsyncResult retornado por esse método.
Chamar esse método garante que todos os registros que foram anexados a LogRecordSequence eles sejam gravados de maneira durável.
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 liberação assíncrona, por exemplo, uma falha de disco durante a solicitação de E/S, resultarão em exceções geradas quando o EndFlush método for chamado.