다음을 통해 공유


FileRecordSequence.BeginFlush(SequenceNumber, AsyncCallback, Object) 메서드

정의

시퀀스에서 이전에 예약된 공간을 사용하여 비동기 플러시 작업을 시작합니다. 이 메서드는 상속될 수 없습니다.

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

매개 변수

sequenceNumber
SequenceNumber

써야 하는 최신 레코드의 시퀀스 번호입니다. SequenceNumber가 유효하지 않은 경우 모든 레코드를 씁니다.

callback
AsyncCallback

플러시가 완료되면 호출되는 선택적 비동기 콜백입니다.

state
Object

이 특정 비동기 플러시 요청을 다른 요청과 구별하는 사용자 제공 개체입니다.

반환

보류 중일 수 있는 비동기 플러시 작업을 나타내는 IAsyncResult입니다.

구현

예외

하나 이상의 인수가 잘못된 경우

sequenceNumber이 이 시퀀스에 유효하지 않은 경우

sequenceNumber이 이 시퀀스의 기준 시퀀스 번호와 마지막 시퀀스 번호 사이에 있지 않은 경우

데이터를 플러시하는 동안 I/O 오류가 발생한 경우

시퀀스가 삭제된 후 메서드가 호출된 경우

메모리가 부족하여 프로그램을 계속 실행할 수 없는 경우

설명

현재 메서드에서 반환된 IAsyncResult 를 메서드에 EndFlush 전달하여 플러시 완료 및 리소스가 적절하게 해제되도록 해야 합니다. 비동기 플러시 중에 오류가 발생하면 이 메서드에서 반환된 를 사용하여 메서드를 EndFlush 호출 IAsyncResult 할 때까지 예외가 throw되지 않습니다.

이 메서드를 호출하면 에 추가된 FileRecordSequence 모든 레코드가 지속적으로 기록됩니다.

레코드 시퀀스가 삭제되었거나 잘못된 인수를 전달하는 경우 이 작업 내에서 예외가 즉시 throw됩니다. 비동기 플러시 요청 중에 발생한 오류(예: I/O 요청 중 디스크 오류)는 메서드가 호출될 때 EndFlush 예외가 throw됩니다.

적용 대상