共用方式為


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

此物件已被處置 (Dispose),或是未正確初始化。

備註

這個方法可協助提供者按照既定排程清除已刪除項目。timeInterval 指定的時間間隔,是已刪除項目要在中繼資料存放區中保留的最低存在時間。由於 CleanupDeletedItems 只在 timeInterval 時間過後清除已刪除項目,所以可以定期呼叫,例如在提供者每次執行變更偵測的時候。因為 CleanupDeletedItems 一定會保留在 timeInterval 期間已經標示為已刪除的已刪除項目,所以能協助保護提供者免於執行耗費極大成本的完整列舉。

第一次呼叫 CleanupDeletedItems 時,它會儲存目前時間當做上次成功清除時間,而且不採取任何其他動作。

後續每一次呼叫 CleanupDeletedItems 時,它將會執行下列步驟。

  1. 針對上次成功清除時間檢查目前時間。如果經過的時間少於 timeInterval,就不採取任何行動,並且傳回 false

  2. 移除上次成功清除時間之前的所有已刪除項目。

  3. 儲存目前時間當做上次成功清除時間。

  4. 更新被遺忘的知識,以反映被移除的已刪除項目。

請注意,CleanupDeletedItems 只會清除上次成功清除時間之前標記為已刪除的項目,不會刪除在上次成功清除時間之後標記為已刪除的項目。例如,CleanupDeletedItems 成功清除了一些項目並且儲存目前時間。二十四天之後,使用指定為 20 天的 timeInterval 再次呼叫 CleanupDeletedItems,則 CleanupDeletedItems 只會移除 24 天以前的已刪除項目,因為上次成功清除就是在 24 天前執行的。介於 24 和 20 天前之間 (例如 22 天前) 的已刪除項目,將不會被移除。任何未達 20 天的已刪除項目也不會被移除。

注意

指定 0 值的 timeInterval 是一種特殊情況,會導致中繼資料存放區內所有已刪除項目都被移除。除非提供者確信同步處理社群內的所有其他複寫都已相互同步處理,才可這樣做,因為過於積極地移除已刪除項目,反而可能導致 Sync Framework 執行完整列舉。

請參閱

參考

ReplicaMetadata 類別
ReplicaMetadata 成員
Microsoft.Synchronization.MetadataStorage 命名空間