ReplicaMetadata.CleanupDeletedItems 方法

当在派生类中重写时,删除标记为已删除且早于上次成功清除时间的项。

命名空间: Microsoft.Synchronization.MetadataStorage
程序集: Microsoft.Synchronization.MetadataStorage(在 microsoft.synchronization.metadatastorage.dll 中)

语法

声明
Public MustOverride Function CleanupDeletedItems ( _
    timeInterval As TimeSpan _
) As Boolean
用法
Dim instance As ReplicaMetadata
Dim timeInterval As TimeSpan
Dim returnValue As Boolean

returnValue = instance.CleanupDeletedItems(timeInterval)
public abstract bool CleanupDeletedItems (
    TimeSpan timeInterval
)
public:
virtual bool CleanupDeletedItems (
    TimeSpan timeInterval
) abstract
public abstract boolean CleanupDeletedItems (
    TimeSpan timeInterval
)
public abstract function CleanupDeletedItems (
    timeInterval : TimeSpan
) : boolean

参数

  • timeInterval
    已删除项在元数据存储区中保存的最短时间。值 0 意味着立即清除所有已删除项。

返回值

如果执行了清除,则为 true;否则为 false

异常

异常类型 条件

ObjectDisposedException

对象已释放或未正确初始化。

备注

此方法可帮助提供程序定时清除已删除项。timeInterval 指定的时间间隔是已删除项在元数据存储区中的最短保留期。由于它仅在经过 timeInterval 时间后才清除已删除项,因此可以定期(如提供程序每次执行变更检测时)调用 CleanupDeletedItems。通过始终在 timeInterval 期间保存标记为已删除的已删除项,CleanupDeletedItems 有助于防止提供程序进行占用大量资源的完全枚举。

第一次调用 CleanupDeletedItems 时,它会将当前时间存储为上次成功清除时间,并且不会采取任何其他操作。

之后每次调用 CleanupDeletedItems 时,都会执行下列步骤。

  1. 将当前时间与上次成功清除时间进行对比。如果经过的时间小于 timeInterval,则不会执行其他操作,并返回 false

  2. 删除所有早于上次成功清除时间的已删除项。

  3. 将当前时间保存为上次成功清除时间。

  4. 更新遗忘知识以反映删除的已删除项。

请注意,CleanupDeletedItems 仅清除上次成功清除时间之前标记为已删除的项,而不会清除上次成功清除时间之后标记为已删除的项。例如,CleanupDeletedItems 成功地清除了项,并存储了当前时间。24 天以后,再次调用 CleanupDeletedItems,并将 timeInterval 指定为 20 天。CleanupDeletedItems 仅删除 24 天之前的已删除项,原因是上次成功执行清除操作的时间是在 24 天前。将不会删除在 24 和 20 天前之间(如 22 天前)标记为已删除的项。也不会删除不足 20 天的已删除项。

备注

将 timeInterval 指定为值 0 是一个特例,这样会将所有已删除项从元数据存储区中删除。只有当提供程序有理由确认同步社区中的其他所有副本互相同步时才能这样做,因为过于激进地删除已删除项可能引起 Sync Framework 执行完整枚举。

请参阅

参考

ReplicaMetadata 类
ReplicaMetadata 成员
Microsoft.Synchronization.MetadataStorage 命名空间