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 会在变更应用过程中每次发送进度通知时计算已完成的工作总值。如果提供程序发送自己的进度通知并为 Stage 指定 ChangeApplication 时,Sync Framework 会将提供程序指定的估计工作值添加至会话的已完成工作总数中。这样会使同一工作计算两次:由 Sync Framework 报告时计算一次,由提供程序报告时计算一次。

请参阅

参考

SyncSessionContext 类
SyncSessionContext 成员
Microsoft.Synchronization 命名空间