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
)
参数
- e
包含事件数据的 SyncStagedProgressEventArgs 对象。
备注
可以使用此方法向应用程序报告自定义进度。当提供程序调用此方法时,会引发 SyncOrchestrator.SessionProgress 事件。
当为 e 的 Stage 属性指定 ChangeApplication 时,Sync Framework 会在每次调用 OnProgressChanged 时累计由 e 的 CompletedWork 属性指定的已完成工作总数。Sync Framework 还会将 e 的 TotalWork 属性解释为此会话的剩余工作,并通过将 TotalWork 添加至已完成工作的累计值来计算此会话的工作总数。然后,Sync Framework 会将这些计算所得的值传递给 SyncOrchestrator.SessionProgress。如果 e 的 Stage 属性是其他有效值,则将 CompletedWork 和 TotalWork 直接传递给 SyncOrchestrator.SessionProgress。
当源提供程序指定工作量估计值时,如果提供程序调用 OnProgressChanged 并为 e 的 Stage 属性指定 ChangeApplication,则会产生意外结果。这是因为 Sync Framework 会在变更应用过程中每次发送进度通知时计算已完成的工作总值。如果提供程序发送自己的进度通知并为 Stage 指定 ChangeApplication 时,Sync Framework 会将提供程序指定的估计工作值添加至会话的已完成工作总数中。这样会使同一工作计算两次:由 Sync Framework 报告时计算一次,由提供程序报告时计算一次。
请参阅
参考
SyncSessionContext 类
SyncSessionContext 成员
Microsoft.Synchronization 命名空间