LogRecordSequence.BeginAppend 方法

定义

开始异步追加操作。

重载

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

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

开始异步追加操作。 无法继承此方法。

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

public:
 virtual IAsyncResult ^ BeginAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, AsyncCallback callback, object state);
abstract member BeginAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * AsyncCallback * obj -> IAsyncResult
override this.BeginAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, callback As AsyncCallback, state As Object) As IAsyncResult

参数

data
ArraySegment<Byte>

将连接在一起并以记录形式追加的字节数组段的列表。

nextUndoRecord
SequenceNumber

用户指定顺序中下一条记录的序列号。

previousRecord
SequenceNumber

“上一个”顺序中下一条记录的序列号。

recordAppendOptions
RecordAppendOptions

RecordAppendOptions 的一个有效值,用于指定应如何写入数据。

callback
AsyncCallback

可选的异步回调,在追加完成时调用。

state
Object

用户提供的对象,用于将此特定异步追加请求与其他请求区别开来。

返回

一个 IAsyncResult,它表示可能仍处于挂起状态的异步追加。

实现

例外

nextUndoRecordpreviousRecord 对此序列无效。

- 或 -

无法追加 data,原因是它比最大记录大小要大。

- 或 -

reservations 不是由此记录序列创建的。

一个或多个参数为 null

nextUndoRecordpreviousRecord 不在此序列的基序列号和最新序列号之间。

由于出现意外的 I/O 异常,因此无法执行该请求。

- 或 -

由于出现 I/O 设备错误,因此无法执行该请求。

由于记录序列是通过只读访问权限打开的,因此无法执行该操作。

该方法是在序列已释放之后调用的。

没有足够的内存来继续执行该程序。

记录序列已满。

操作系统拒绝了对指定的日志序列的访问。

注解

应将此方法返回的 IAsyncResult 传递给 EndAppend 方法,以确保追加操作完成并能够适当释放资源。 如果在异步追加过程中发生错误,则在使用此方法返回的 EndAppend 调用 IAsyncResult 方法之前,不会引发异常。

包含在 data 参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。

通常,此方法在写入记录之前完成。 若要确保记录已写入,请使用 ForceFlush 参数指定 recordAppendOptions 标志,或者调用 Flush 方法。

适用于

BeginAppend(IList<ArraySegment<Byte>>, SequenceNumber, SequenceNumber, RecordAppendOptions, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

public:
 virtual IAsyncResult ^ BeginAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, AsyncCallback callback, object state);
abstract member BeginAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * AsyncCallback * obj -> IAsyncResult
override this.BeginAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * AsyncCallback * obj -> IAsyncResult
Public Function BeginAppend (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, callback As AsyncCallback, state As Object) As IAsyncResult

参数

data
IList<ArraySegment<Byte>>

将连接在一起并以记录形式追加的字节数组段的列表。

userRecord
SequenceNumber

用户指定顺序中下一条记录的序列号。

previousRecord
SequenceNumber

“上一个”顺序中下一条记录的序列号。

recordAppendOptions
RecordAppendOptions

RecordAppendOptions 的一个有效值,用于指定应如何写入数据。

callback
AsyncCallback

可选的异步回调,在追加完成时调用。

state
Object

用户提供的对象,用于将此特定异步追加请求与其他请求区别开来。

返回

一个 IAsyncResult,它表示可能仍处于挂起状态的异步追加。

实现

例外

userRecordpreviousRecord 对此序列无效。

- 或 -

无法追加 data,原因是它比最大记录大小要大。

- 或 -

reservations 不是由此记录序列创建的。

一个或多个参数为 null

userRecordpreviousRecord 不在此序列的基序列号和最新序列号之间。

由于出现意外的 I/O 异常,因此无法执行该请求。

- 或 -

由于出现 I/O 设备错误,因此无法执行该请求。

由于记录序列是通过只读访问权限打开的,因此无法执行该操作。

该方法是在序列已释放之后调用的。

没有足够的内存来继续执行该程序。

记录序列已满。

操作系统拒绝了对指定的日志序列的访问。

注解

应将此方法返回的 IAsyncResult 传递给 EndAppend 方法,以确保追加操作完成并能够适当释放资源。 如果在异步追加过程中发生错误,则在使用此方法返回的 EndAppend 调用 IAsyncResult 方法之前,不会引发异常。

包含在 data 参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。

通常,此方法在写入记录之前完成。 若要确保记录已写入,请使用 ForceFlush 参数指定 recordAppendOptions 标志,或者调用 Flush 方法。

适用于

BeginAppend(ArraySegment<Byte>, SequenceNumber, SequenceNumber, RecordAppendOptions, ReservationCollection, AsyncCallback, Object)

开始异步追加操作。 无法继承此方法。

public:
 virtual IAsyncResult ^ BeginAppend(ArraySegment<System::Byte> data, System::IO::Log::SequenceNumber nextUndoRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAppend (ArraySegment<byte> data, System.IO.Log.SequenceNumber nextUndoRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations, AsyncCallback callback, object state);
abstract member BeginAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginAppend : ArraySegment<byte> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginAppend (data As ArraySegment(Of Byte), nextUndoRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

参数

data
ArraySegment<Byte>

将连接在一起并以记录形式追加的字节数组段的列表。

nextUndoRecord
SequenceNumber

用户指定顺序中下一条记录的序列号。

previousRecord
SequenceNumber

“上一个”顺序中下一条记录的序列号。

recordAppendOptions
RecordAppendOptions

RecordAppendOptions 的一个有效值,用于指定应如何写入数据。

reservations
ReservationCollection

一个 ReservationCollection,它包含应当用于此记录的预留。

callback
AsyncCallback

可选的异步回调,在追加完成时调用。

state
Object

用户提供的对象,用于将此特定异步追加请求与其他请求区别开来。

返回

一个 IAsyncResult,它表示可能仍处于挂起状态的异步追加。

实现

例外

userRecordpreviousRecord 对此序列无效。

- 或 -

无法追加 data,原因是它比最大记录大小要大。

- 或 -

reservations 不是由此记录序列创建的。

一个或多个参数为 null

userRecordpreviousRecord 不在此序列的基序列号和最新序列号之间。

由于出现意外的 I/O 异常,因此无法执行该请求。

- 或 -

由于出现 I/O 设备错误,因此无法执行该请求。

由于记录序列是通过只读访问权限打开的,因此无法执行该操作。

该方法是在序列已释放之后调用的。

没有足够的内存来继续执行该程序。

记录序列已满。

操作系统拒绝了对指定的日志序列的访问。

data 中找不到足以容纳 reservations 的预留。

注解

应将此方法返回的 IAsyncResult 传递给 EndAppend 方法,以确保追加操作完成并能够适当释放资源。 如果在异步追加过程中发生错误,则在使用此方法返回的 EndAppend 调用 IAsyncResult 方法之前,不会引发异常。

包含在 data 参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。

追加的记录将使用 reservations 参数指定的预留来占用先前已预留的空间。 如果追加成功,它将占用能容纳数据的最小预留区域,而该预留区域将从集合中移除。

通常,此方法在写入记录之前完成。 若要确保记录已写入,请使用 ForceFlush 参数指定 recordAppendOptions 标志,或者调用 Flush 方法。

适用于

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

开始异步追加操作。 无法继承此方法。

public:
 virtual IAsyncResult ^ BeginAppend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber userRecord, System::IO::Log::SequenceNumber previousRecord, System::IO::Log::RecordAppendOptions recordAppendOptions, System::IO::Log::ReservationCollection ^ reservations, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAppend (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber userRecord, System.IO.Log.SequenceNumber previousRecord, System.IO.Log.RecordAppendOptions recordAppendOptions, System.IO.Log.ReservationCollection reservations, AsyncCallback callback, object state);
abstract member BeginAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
override this.BeginAppend : System.Collections.Generic.IList<ArraySegment<byte>> * System.IO.Log.SequenceNumber * System.IO.Log.SequenceNumber * System.IO.Log.RecordAppendOptions * System.IO.Log.ReservationCollection * AsyncCallback * obj -> IAsyncResult
Public Function BeginAppend (data As IList(Of ArraySegment(Of Byte)), userRecord As SequenceNumber, previousRecord As SequenceNumber, recordAppendOptions As RecordAppendOptions, reservations As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult

参数

data
IList<ArraySegment<Byte>>

将连接在一起并以记录形式追加的字节数组段的列表。

userRecord
SequenceNumber

用户指定顺序中下一条记录的序列号。

previousRecord
SequenceNumber

“上一个”顺序中下一条记录的序列号。

recordAppendOptions
RecordAppendOptions

RecordAppendOptions 的一个有效值,用于指定应如何写入数据。

reservations
ReservationCollection

一个 ReservationCollection,它包含应当用于此记录的预留。

callback
AsyncCallback

可选的异步回调,在追加完成时调用。

state
Object

用户提供的对象,用于将此特定异步追加请求与其他请求区别开来。

返回

一个 IAsyncResult,它表示可能仍处于挂起状态的异步追加。

实现

例外

userRecordpreviousRecord 对此序列无效。

- 或 -

无法追加 data,原因是它比最大记录大小要大。

- 或 -

reservations 不是由此记录序列创建的。

一个或多个参数为 null

userRecordpreviousRecord 不在此序列的基序列号和最新序列号之间。

由于出现意外的 I/O 异常,因此无法执行该请求。

- 或 -

由于出现 I/O 设备错误,因此无法执行该请求。

由于记录序列是通过只读访问权限打开的,因此无法执行该操作。

该方法是在序列已释放之后调用的。

没有足够的内存来继续执行该程序。

记录序列已满。

操作系统拒绝了对指定的日志序列的访问。

data 中找不到足以容纳 reservations 的预留。

注解

应将此方法返回的 IAsyncResult 传递给 EndAppend 方法,以确保追加操作完成并能够适当释放资源。 如果在异步追加过程中发生错误,则在使用此方法返回的 EndAppend 调用 IAsyncResult 方法之前,不会引发异常。

包含在 data 参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。

追加的记录将使用 reservations 参数指定的预留来占用先前已预留的空间。 如果追加成功,它将占用能容纳数据的最小预留区域,而该预留区域将从集合中移除。

通常,此方法在写入记录之前完成。 若要确保记录已写入,请使用 ForceFlush 参数指定 recordAppendOptions 标志,或者调用 Flush 方法。

适用于