gpt4 book ai didi

c# - 有关如何记录同步过程的示例

转载 作者:太空狗 更新时间:2023-10-30 01:35:00 24 4
gpt4 key购买 nike

我已经实现了一个同步并且工作正常。由于同步时间相当长(时间上),我想创建一个 ProgressBar 来显示同步进度。我查看了一些同步事件,例如 ApplyingChanges

但是我并没有像我期望的那样得到它们,文档也没有给我太多帮助。

有没有人有一些关于同步日志如何工作的好例子的链接?我将不胜感激。

(我正在使用同步框架 2.1)

例如,ApplyingChangesChangesApplied 事件之间是否有任何事件?

最佳答案

不幸的是,我需要道歉,因为我不再为我们使用 Microsoft Sync Framework 2.1 的项目工作,所以我无法显示代码。希望解释能让您朝着正确的方向前进。

在 Microsoft Sync Framework 2.1 中,您可以订阅 session 进度事件:Microsoft.Synchronization.SyncOrchestrator.SessionProgress。说实话。我没有使用此事件获得可靠的进度条。所以我自己从两个同步提供商那里收集了信息。

我只有 DatabaseSyncProvider(它继承了 RelationalSyncProvider)的经验,但希望能帮到你。
RelationalSyncProvider 引发了一些可以帮助您收集信息的事件: See RelationalSyncProvider

请注意双向同步意味着两个同步 session 。建议计算每个 session 的进度。因此,在双向同步的情况下,一旦一个 session 完成,您就完成了 50%。

对于更高级的进度条,你需要知道你要同步多少条记录。结合从 RelationalSyncProvider 的事件中收集的信息,您可以构建一个非常准确的进度条。为此,您可以构建一种预览,它正在计算将在下一次 session 期间同步的更改。
为此,您可以使用目标端的 SyncKnowledge 和源端数据库的 selectchanges 查询。 selectchanges 查询的 whereclause,可用于您自己的 countchanges 存储过程。由于您使用的是与 MS Sync Framework 用于选择更改相同的 whereclause,因此您将检索到将为该 session 同步发送的记录的确切数量。

我们不仅将此“countchanges”用于进度条,还用于统计和高级调度。如果你只是为了一个进度条,你需要在性能损失和用户友好的进度条或不太可靠的进度条之间做出决定。

关于c# - 有关如何记录同步过程的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com