ReservationCollection.Remove(Int64) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
释放指定大小的预留(如果已生成)。 无法继承此方法。
public:
virtual bool Remove(long item);
public bool Remove (long item);
abstract member Remove : int64 -> bool
override this.Remove : int64 -> bool
Public Function Remove (item As Long) As Boolean
参数
- item
- Int64
要释放的预留的大小。
返回
如果已找到并移除指定大小的预留,则为 true
;否则为 false
。
实现
例外
在指定的预留集合中找不到足以容纳提供的记录的预留。
创建存档快照时发生 I/O 错误。
该方法是在序列已释放之后调用的。
没有足够的内存来继续执行该程序。
记录序列已满。
操作系统拒绝了对指定的日志存储区的访问。
示例
下面的示例演示如何以手动方式生成预留。 请注意,只有在使用基于 CLFS 的 LogRecordSequence 类时才能执行此任务。
ReservationCollection reservations = recordSequence.CreateReservationCollection();
reservations.Add(lengthOfUndoRecord);
try
{
recordSequence.Append(recordData, userSqn, previousSqn, RecordAppendOptions.None);
}
catch (Exception)
{
reservations.Remove(lengthOfUndoRecord);
throw;
}
recordSequence.Append(undoRecordData, userSqn, previousSqn, RecordAppendOptions.ForceFlush, reservations);