次の方法で共有


SyncSessionContext.OnProgressChanged メソッド

同期の進行状況をアプリケーションに報告します。

名前空間: Microsoft.Synchronization
アセンブリ: Microsoft.Synchronization (microsoft.synchronization.dll 内)

構文

'宣言
Public Sub OnProgressChanged ( _
    e As SyncStagedProgressEventArgs _
)
'使用
Dim instance As SyncSessionContext
Dim e As SyncStagedProgressEventArgs

instance.OnProgressChanged(e)
public void OnProgressChanged (
    SyncStagedProgressEventArgs e
)
public:
void OnProgressChanged (
    SyncStagedProgressEventArgs^ e
)
public void OnProgressChanged (
    SyncStagedProgressEventArgs e
)
public function OnProgressChanged (
    e : SyncStagedProgressEventArgs
)

パラメータ

解説

このメソッドは、カスタム進行状況をアプリケーションに報告する場合に使用できます。プロバイダがこのメソッドを呼び出すと、SyncOrchestrator.SessionProgress イベントが発生します。

e の Stage プロパティに ChangeApplication を指定すると、Sync Framework は、OnProgressChanged を呼び出すたびに e の CompletedWork プロパティで指定された完了済みの合計作業量を累積します。また、Sync Framework は e の TotalWork プロパティをセッションの残りの作業と解釈し、完了済みの作業の累積値に TotalWork を加えることによってセッションの合計作業量を計算します。次に、Sync Framework はこれらの計算値を SyncOrchestrator.SessionProgress に渡します。e の Stage プロパティがその他の有効値の場合は、CompletedWorkTotalWork が直接 SyncOrchestrator.SessionProgress に渡されます。

同期元プロバイダが作業見積もりを指定する場合、プロバイダが OnProgressChanged を呼び出して e の Stage プロパティに ChangeApplication を指定すると、予期しない結果が生じる可能性があります。これは、変更の適用中に進行状況の通知が送信されるたびに、完了済みの作業の合計値を Sync Framework が計算するためです。プロバイダが独自の進行状況通知を送信し、StageChangeApplication を指定する場合は、Sync Framework は、プロバイダが指定した作業見積もり値をセッションの合計完了作業量に加えます。これによって同じ作業が 2 回数えられます。1 回は Sync Framework が報告するとき、もう 1 回はプロバイダが報告するときです。

参照

リファレンス

SyncSessionContext クラス
SyncSessionContext メンバ
Microsoft.Synchronization 名前空間