LogRecordSequence.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 方法之前,不会引发异常。

调用此方法可以确保已追加到 LogRecordSequence 的所有记录都是持久写入的。

如果记录序列已经释放,或者如果传递了无效自变量,此操作内将立即引发异常。 异步刷新请求过程中发生的错误(例如,I/O 请求过程中的磁盘故障)将导致在调用 EndFlush 方法时引发异常。

适用于