LogRecordSequence.BeginWriteRestartArea 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
开始异步重新开始区域写入操作。
重载
BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object) |
使用序列中先前保留的空间开始异步重新开始区域写入操作。 无法继承此方法。 |
BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object) |
使用序列中先前保留的空间开始异步重新开始区域写入操作。 无法继承此方法。 |
BeginWriteRestartArea(IList<ArraySegment<Byte>>, SequenceNumber, ReservationCollection, AsyncCallback, Object)
使用序列中先前保留的空间开始异步重新开始区域写入操作。 无法继承此方法。
public:
virtual IAsyncResult ^ BeginWriteRestartArea(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ data, System::IO::Log::SequenceNumber newBaseSeqNum, System::IO::Log::ReservationCollection ^ reservationCollection, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginWriteRestartArea (System.Collections.Generic.IList<ArraySegment<byte>> data, System.IO.Log.SequenceNumber newBaseSeqNum, System.IO.Log.ReservationCollection reservationCollection, 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, reservationCollection As ReservationCollection, callback As AsyncCallback, state As Object) As IAsyncResult
参数
- data
- IList<ArraySegment<Byte>>
将连接在一起并以记录形式追加的字节数组段的列表。
- newBaseSeqNum
- SequenceNumber
新的基序列号。 指定的序列号必须大于或等于当前基序列号。
- reservationCollection
- ReservationCollection
一个 ReservationCollection,它包含应当用于此重新开始区域的预留。
- callback
- AsyncCallback
可选的异步回调,在重新开始区域写入完成时调用。
- state
- Object
用户提供的对象,用于将此特定异步重新开始区域写入请求与其他请求区别开来。
返回
一个 IAsyncResult,它表示可能仍处于挂起状态的异步重新开始区域写入操作。
实现
例外
newBaseSeqNum
对此序列无效。
- 或 -
指定的日志枚举开始序列号无效。
- 或 -
无法追加 data
,原因是它比最大记录大小要大。
- 或 -
reservationCollection
不是由此记录序列创建的。
一个或多个参数为 null
。
该方法是在序列已释放之后调用的。
没有足够的内存来继续执行该程序。
操作系统拒绝了对指定的日志序列的访问。
记录序列已满。
注解
应将此方法返回的 IAsyncResult 传递给 EndWriteRestartArea 方法,以确保重新开始区域写入操作完成并能够适当释放资源。 如果在异步重新开始区域写入操作过程中发生错误,则在使用此方法返回的 EndWriteRestartArea 调用 IAsyncResult 方法之前,不会引发异常。
包含在 data
参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。
操作成功完成时,基序列号已更新。 其序列号小于新的基序列号的所有日志记录都不可访问。
如果指定了 ReservationCollection,写入的重新开始区域将使用集合中包含的预留来占用先前已预留的空间。 如果该方法成功,它将占用能容纳数据的最小预留,而该预留将从集合中移除。
如果记录序列已经释放,或者如果传递了无效自变量,此操作内将立即引发异常。 异步追加请求过程中发生的错误(例如,I/O 请求过程中的磁盘故障)将导致在调用 EndWriteRestartArea 方法时引发异常。
适用于
BeginWriteRestartArea(ArraySegment<Byte>, SequenceNumber, ReservationCollection, AsyncCallback, Object)
使用序列中先前保留的空间开始异步重新开始区域写入操作。 无法继承此方法。
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
参数
- data
- ArraySegment<Byte>
将连接在一起并以记录形式追加的字节数组段。
- newBaseSeqNum
- SequenceNumber
新的基序列号。 指定的序列号必须大于或等于当前基序列号。
- reservation
- ReservationCollection
一个 ReservationCollection,它包含应当用于此重新开始区域的预留。
- callback
- AsyncCallback
可选的异步回调,在重新开始区域写入完成时调用。
- state
- Object
用户提供的对象,用于将此特定异步重新开始区域写入请求与其他请求区别开来。
返回
一个 IAsyncResult,它表示可能仍处于挂起状态的异步重新开始区域写入操作。
实现
例外
newBaseSeqNum
对此序列无效。
- 或 -
指定的日志枚举开始序列号无效。
- 或 -
无法追加 data
,原因是它比最大记录大小要大。
- 或 -
reservation
不是由此记录序列创建的。
一个或多个参数为 null
。
该方法是在序列已释放之后调用的。
没有足够的内存来继续执行该程序。
操作系统拒绝了对指定的日志序列的访问。
记录序列已满。
注解
应将此方法返回的 IAsyncResult 传递给 EndWriteRestartArea 方法,以确保重新开始区域写入操作完成并能够适当释放资源。 如果在异步重新开始区域写入操作过程中发生错误,则在使用此方法返回的 EndWriteRestartArea 调用 IAsyncResult 方法之前,不会引发异常。
包含在 data
参数中的数据将连接成单个字节数组,以便以记录形式追加。 但在读取记录时,无法将数据重新拆分为数组段。
操作成功完成时,基序列号已更新。 其序列号小于新的基序列号的所有日志记录都不可访问。
如果指定了 ReservationCollection,写入的重新开始区域将使用集合中包含的预留来占用先前已预留的空间。 如果该方法成功,它将占用能容纳数据的最小预留,而该预留将从集合中移除。
如果记录序列已经释放,或者如果传递了无效自变量,此操作内将立即引发异常。 异步追加请求过程中发生的错误(例如,I/O 请求过程中的磁盘故障)将导致在调用 EndWriteRestartArea 方法时引发异常。