Поделиться через


Асинхронная синхронизация данных

Асинхронная синхронизация данных позволяет приложению SQL Server Compact 3.5 (SQL Server Compact 3.5) обрабатывать данные и одновременно ожидать завершения синхронизации.

Допустим, что приложение регулярно выполняет синхронизацию данных и отправляет большой объем данных по медленному соединению. Во время синхронизации приложение не будет реагировать на команды пользователя. В результате пользователь может решить, что приложение работает ненадлежащим образом. Чтобы повысить удобство работы с приложением во время синхронизации, можно отобразить на интеллектуальном устройстве индикатор выполнения, который будет показывать состояние синхронизации. Применение асинхронной синхронизации позволяет начать синхронизацию, а затем обрабатывать события синхронизации по мере их возникновения и отображать пользователю сведения об этих событиях.

ms171881.note(ru-ru,SQL.100).gifПримечание.
Использование асинхронной синхронизации позволяет отменить синхронизацию в процессе выполнения.

Использование методов асинхронной синхронизации данных

Если приложение SQL Server Compact 3.5 разрабатывается с использованием Microsoft .NET Compact Framework и одного из управляемых языков программирования (Microsoft Visual Basic или Microsoft Visual C#), асинхронные вызовы обрабатываются так же, как и другие асинхронные вызовы в Microsoft .NET Framework. При разработке собственного приложения с помощью Microsoft Visual C++ for Devices необходимо использовать свойство SyncStatusReport интерфейса ISSCEMerge.

Использование управляемого интерфейса API

В пространстве имен System.Data.SqlServerCE существуют три типа, используемые при асинхронной синхронизации данных.

  • OnStartTableUpload
    Это событие возникает каждый раз, когда подписчик начинает передачу таблицы издателю.
  • OnStartTableDownload
    Это событие возникает каждый раз, когда подписчик начинает получение таблицы от издателя.
  • OnSynchronization
    Это событие возникает, когда запускается процесс reconciler или в приложении выполняется проверка синхронизации.

Кроме того, можно использовать следующие три метода объекта Replication.

  • BeginSynchronize
    Данный метод начинает процесс синхронизации с помощью объекта IAsyncResult .
  • EndSynchronize
    Метод EndSynchronize вызывается, когда сервер возвращает сообщение об окончании синхронизации.
  • CancelSynchronize
    Метод CancelSynchronize позволяет в любой момент отменить синхронизацию.

Ниже перечислены этапы выполнения асинхронной синхронизации данных при помощи управляемого интерфейса API.

  1. Создайте объект Replication и установите значения его свойств.
  2. Создайте объект IAsyncResult и настройте его для метода BeginSynchronize объекта Replication.
  3. Передайте методу BeginSynchronize следующие свойства.
    • Метод обратного вызова (событие AysncCallback).
    • Метод обработки события OnStartTableUpload.
    • Метод обработки события OnStartTableDownload.
    • Метод обработки события OnSynchronization.
  4. Добавьте к методу обратного вызова код для вызова метода EndSynchronize.
  5. Вызовите метод AsyncWaitHandle объекта IAsyncResult.
  6. В обработчиках событий можно добавить код, который позволяет отображать текущее состояние синхронизации или отменять синхронизацию.
ms171881.note(ru-ru,SQL.100).gifПримечание.
Отчеты о состоянии посылаются в четырех случаях: в начале выполнения передачи каждой пользовательской таблицы, в начале выполнения загрузки каждой пользовательской таблицы, при запуске посредника, а также при обновлении значения «процент завершения» посредника.

Использование собственного интерфейса API

Для выполнения асинхронной синхронизации данных, как и для выполнения синхронной синхронизации, используется интерфейс ISSCEMerge. В отличие от приложений, в которых применяется управляемый код, асинхронная синхронизация данных является однопоточным процессом. Уведомления о синхронизации находятся в том же потоке, что и синхронизация. Для получения отчетов о состоянии синхронизации используется свойство SyncStatusReport интерфейса ISSCEMerge.

См. также

Основные понятия

Синхронизация данных (SQL Server Compact)
Синхронная синхронизация данных
Многопользовательский доступ и синхронизация

Другие ресурсы

Как синхронизировать данные в асинхронном режиме (программным путем)

Справка и поддержка

Получение помощи (SQL Server Compact 3.5 с пакетом обновления 1)