Freigeben über


Asynchrone Datensynchronisierung

Bei der asynchronen Datensynchronisierung kann eine SQL Server Compact 3.5-Anwendung die Verarbeitung anderer Informationen fortsetzen, während sie auf das Ende der Datensynchronisierung wartet.

Angenommen, eine Anwendung führt Datensynchronisierungen in regelmäßigen Abständen aus und sendet viele Daten über eine langsame Verbindung. Während der Datensynchronisierung reagiert die Anwendung nicht auf Benutzereingaben. Der Benutzer hat möglicherweise den Eindruck, dass die Anwendung nicht richtig funktioniert. Zur Verbesserung der Benutzerfreundlichkeit während der Datensynchronisierung können Sie eine Statusanzeige auf dem intelligenten Gerät einblenden, die den Status der Synchronisierung anzeigt. Bei der asynchronen Datensynchronisierung können Sie die Datensynchronisierung initiieren und dann eintretende Synchronisierungsereignisse auffangen. Diese Ereignisse können dem Benutzer dann von der Anwendung angezeigt werden.

Hinweis

Bei der asynchronen Datensynchronisierung können Sie zudem bereits laufende Datensynchronisierungen abbrechen.

Verwenden der Methoden der asynchronen Datensynchronisierung

Wenn Sie eine SQL Server Compact 3.5-Anwendung mithilfe von Microsoft .NET Compact Framework und einer der verwalteten Programmiersprachen entwickeln (Microsoft Visual Basic oder Microsoft Visual C#), werden asynchrone Aufrufe wie alle anderen asynchronen Aufrufe in Microsoft .NET Framework verarbeitet. Wenn Sie eine systemeigene Anwendung mithilfe von Microsoft Visual C++ für mobile Geräte entwickeln, verwenden Sie die SyncStatusReport-Eigenschaft der ISSCEMerge-Schnittstelle.

Verwenden der verwalteten API

Bei der asynchronen Datensynchronisierung werden drei Typen im System.Data.SqlServerCE-Namespace verwendet:

  • OnStartTableUpload

    Dieses Ereignis tritt ein, wenn die einzelnen Tabellen im Abonnement auf den Verleger per Upload übertragen werden.

  • OnStartTableDownload

    Dieses Ereignis tritt ein, wenn die einzelnen Tabellen vom Verleger zurückgegeben werden.

  • OnSynchronization

    Dieses Ereignis tritt ein, wenn die Synchronisierung startet oder Ihr Code eine Synchronisierungsprüfung ausführt.

Es stehen Ihnen auch die folgenden drei Methoden des Replication-Objekts zur Verfügung:

  • BeginSynchronize

    Diese Methode startet den Synchronisierungsvorgang mithilfe eines IAsyncResult-Objekts.

  • EndSynchronize

    Sie rufen EndSynchronize auf, wenn der Server eine Nachricht über das Synchronisierungsende zurückgibt.

  • CancelSynchronize

    Durch Aufrufen der CancelSynchronize-Methode können Sie die Synchronisierung jederzeit abbrechen.

In den folgenden Schritten wird die Ausführung der asynchronen Datensynchronisierung mit dem verwalteten API veranschaulicht:

  1. Erstellen Sie ein Replication-Objekt, und legen Sie dessen Eigenschaften fest.

  2. Erstellen Sie ein IAsyncResult-Objekt, und legen Sie es auf die BeginSynchronize-Methode des Replication-Objekts fest.

  3. Ordnen Sie die folgenden Eigenschaften der BeginSynchronize-Methode zu:

    • Die callback-Methode (AysncCallback-Ereignis).

    • Eine Methode zum Verarbeiten des OnStartTableUpload-Ereignisses.

    • Eine Methode zum Verarbeiten des OnStartTableDownload-Ereignisses.

    • Eine Methode zum Verarbeiten des OnSynchronization-Ereignisses.

  4. Fügen Sie der callback-Methode Code hinzu, um die EndSynchronize-Methode aufzurufen.

  5. Rufen Sie die AsyncWaitHandle-Methode des IAsyncResult-Objekts auf.

  6. In den Ereignishandlern können Sie Code hinzufügen, um den aktuellen Status der Synchronisierung zu melden oder die Synchronisierung abzubrechen.

Hinweis

Statusberichte werden während vier Ereignissen gesendet: zu Beginn der Vorbereitung der Benutzertabellen auf den Upload, zu Beginn der Vorbereitung der Benutzertabellen auf den Download, beim Starten der Synchronisierung und bei jeder Aktualisierung des Prozent abgeschlossen-Werts einer Synchronisierung.

Verwenden des systemeigenen API

Sie verwenden die ISSCEMerge-Schnittstelle für synchrone und asynchrone Datensynchronisierungen gleichermaßen. Im Gegensatz zum Vorgang in verwaltetem Code ist die asynchrone Datensynchronisierung ein Singlethread-Vorgang. Synchronisierungsbenachrichtigungen befinden sich auf demselben Thread wie die Synchronisierung. Mithilfe der SyncStatusReport-Eigenschaft der ISSCEMerge-Schnittstelle können Sie Statusberichte zur Synchronisierung abrufen.

Siehe auch

Andere Ressourcen

Synchronisieren von Daten (SQL Server Compact)

Synchrone Datensynchronisierung

Mehrbenutzerzugriff und Synchronisierung

Vorgehensweise: Asynchrones Synchronisieren von Daten (programmgesteuert)