异步数据同步

异步数据同步使 SQL Server 2005 Compact Edition (SQL Server Compact Edition) 应用程序在等待数据同步完成的同时能够继续处理其他信息。

例如,假定应用程序定期执行数据同步并通过速度较慢的连接发送大量数据。在数据同步过程中,应用程序将不会对用户输入作出响应。用户可能就会认为应用程序工作不正常。为了使应用程序在数据同步过程中对用户更为友好,您可能希望在智能设备上显示进度条来显示同步状态。通过使用异步数据同步,您可以启动数据同步功能,然后在同步事件发生时捕获同步事件。应用程序随后可以将这些事件显示给用户。

注意:
使用异步数据同步还允许您取消正在进行的数据同步过程。

使用异步数据同步方法

如果是使用 Microsoft .NET Compact Framework 和某种托管编程语言(Microsoft Visual Basic 或 Microsoft Visual C#)开发 SQL Server Compact Edition 应用程序,则异步调用的处理与 Microsoft .NET Framework 中其他异步调用的处理方式类似。如果是使用 Microsoft Visual C++ for Devices 开发本机应用程序,则应使用 ISSCEMerge 接口的 SyncStatusReport 属性。

使用托管 API

System.Data.SqlServerCE 命名空间中有三种在异步数据同步中使用的托管 API 类型:

  • OnStartTableUpload
    将订阅中的各表上载到发布服务器时,将发生此事件。
  • OnStartTableDownload
    从发布服务器返回各表时,将发生此事件。
  • OnSynchronization
    启动协调器或代码执行同步检查时,将发生此事件。

您还可以使用 Replication 对象的以下三种方法:

  • BeginSynchronize
    此方法通过使用 IAsyncResult 对象启动同步过程。
  • EndSynchronize
    当服务器返回结束同步消息时,将调用 EndSynchronize。
  • CancelSynchronize
    您可以调用 CancelSynchronize 方法随时取消同步。

下列步骤给出了使用托管 API 执行异步数据同步的过程:

  1. 创建 Replication 对象并设置其属性。
  2. 创建 IAsyncResult 对象并将其设置为 Replication 对象的 BeginSynchronize 方法。
  3. 将以下属性传递给 BeginSynchronize 方法:
    • 回调方法(AysncCallback 事件)。
    • 一种处理 OnStartTableUpload 事件的方法。
    • 一种处理 OnStartTableDownload 事件的方法。
    • 一种处理 OnSynchronization 事件的方法。
  4. 为回调方法添加代码,以调用 EndSynchronize 方法。
  5. 调用 IAsyncResult 对象的 AsyncWaitHandle 方法。
  6. 在事件处理程序中,您可以添加代码来报告同步的当前状态或取消同步。
注意:
有四种事件在发生过程中会发送状态报告:开始每个用户表的上载过程时;开始每个用户表的下载过程时;启动协调器时;更新协调器的“完成百分比”值时。

使用本机 API

与同步数据同步相同,您将使用 ISSCEMerge 接口来执行异步数据同步。与托管代码的过程不同,异步数据同步仍是一个单线程过程。同步通知与同步位于同一线程上;您应使用 ISSCEMerge 接口的 SyncStatusReport 属性来检索同步状态报告。

请参阅

任务

如何以异步方式同步数据(以编程方式)

概念

同步数据 (SQL Server Compact Edition)
同步数据同步
多用户访问和同步

帮助和信息

获取 SQL Server Compact Edition 帮助