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。
例外
例外狀況型別 | 條件 |
---|---|
此物件已被處置 (Dispose),或是未正確初始化。 |
備註
這個方法可協助提供者按照既定排程清除已刪除項目。timeInterval 指定的時間間隔,是已刪除項目要在中繼資料存放區中保留的最低存在時間。由於 CleanupDeletedItems 只在 timeInterval 時間過後清除已刪除項目,所以可以定期呼叫,例如在提供者每次執行變更偵測的時候。因為 CleanupDeletedItems 一定會保留在 timeInterval 期間已經標示為已刪除的已刪除項目,所以能協助保護提供者免於執行耗費極大成本的完整列舉。
第一次呼叫 CleanupDeletedItems 時,它會儲存目前時間當做上次成功清除時間,而且不採取任何其他動作。
後續每一次呼叫 CleanupDeletedItems 時,它將會執行下列步驟。
針對上次成功清除時間檢查目前時間。如果經過的時間少於 timeInterval,就不採取任何行動,並且傳回 false。
移除上次成功清除時間之前的所有已刪除項目。
儲存目前時間當做上次成功清除時間。
更新被遺忘的知識,以反映被移除的已刪除項目。
請注意,CleanupDeletedItems 只會清除上次成功清除時間之前標記為已刪除的項目,不會刪除在上次成功清除時間之後標記為已刪除的項目。例如,CleanupDeletedItems 成功清除了一些項目並且儲存目前時間。二十四天之後,使用指定為 20 天的 timeInterval 再次呼叫 CleanupDeletedItems,則 CleanupDeletedItems 只會移除 24 天以前的已刪除項目,因為上次成功清除就是在 24 天前執行的。介於 24 和 20 天前之間 (例如 22 天前) 的已刪除項目,將不會被移除。任何未達 20 天的已刪除項目也不會被移除。
注意
指定 0 值的 timeInterval 是一種特殊情況,會導致中繼資料存放區內所有已刪除項目都被移除。除非提供者確信同步處理社群內的所有其他複寫都已相互同步處理,才可這樣做,因為過於積極地移除已刪除項目,反而可能導致 Sync Framework 執行完整列舉。
請參閱
參考
ReplicaMetadata 類別
ReplicaMetadata 成員
Microsoft.Synchronization.MetadataStorage 命名空間