報告檔案同步處理進度
應用程式可以透過註冊來接收在同步處理期間發生的通知,追蹤同步處理進度。
Managed 程式碼:註冊處理常式從 FileSyncProvider 物件接收事件,例如 CopyingFile 會定期發生,在檔案進行複製時顯示進度,或者 AppliedChange 會在已套用檔案變更時發生。
Unmanaged 程式碼:傳遞 IFileSyncProviderCallback 物件給 IFileSyncProvider::Initialize 方法。事件引發時會呼叫 IFileSyncProviderCallback 方法,例如,IFileSyncProviderCallback::OnFileCopyProgress 會定期發生,在檔案進行複製時顯示進度,或者 IFileSyncProviderCallback::OnChangeApplied 會在已套用檔案變更時發生。
預覽模式
應用程式可以在啟動同步處理之前,透過將 PreviewMode 屬性的值設定為 true (適用於 Managed 程式碼) 或透過將 TRUE 傳遞給 IFileSyncProvider::SetPreviewMode 方法 (適用於 Unmanaged 程式碼),讓提供者處於預覽模式。當提供者處於預覽模式時,會偵測變更並引發事件,其方式與在一般同步處理工作階段期間相同。但是提供者不會自動套用任何變更至目的地複寫,也不會傳送 AppliedChange 事件 (適用於 Managed 程式碼) 或 IFileSyncProviderCallback::OnChangeApplied 事件 (適用於 Unmanaged 程式碼)。
顯示累加進度
若要在同步處理工作階段期間顯示累加進度,請執行以下程序。
Managed 程式碼
註冊以便處理 ApplyingChange 事件。
在提供者中,將 PreviewMode 屬性的值設定為 true,以啟用預覽模式。
執行同步處理並計算 ApplyingChange 引發的總次數。
註冊以便處理 AppliedChange 事件。
在提供者中,將 PreviewMode 屬性的值設定為 false,以停用預覽模式。
執行同步處理。AppliedChange 引發時,同步處理進度可以累加至同步處理在預覽模式中執行時所計算的變更總數之上。
Unmanaged 程式碼
註冊以便接收 IFileSyncProviderCallback::OnApplyingChange 回呼。
在提供者中,將 TRUE 傳遞給 IFileSyncProvider::SetPreviewMode 方法,以啟用預覽模式。
執行同步處理並計算 OnApplyingChange 呼叫的總次數。
註冊以便接收 IFileSyncProviderCallback::OnChangeApplied 回呼。
在提供者中,將 FALSE 傳遞給 IFileSyncProvider::SetPreviewMode 方法,以停用預覽模式。
執行同步處理。呼叫 OnChangeApplied 時,同步處理進度可以累加至同步處理在預覽模式中執行時所計算的變更總數之上。