Partager via


Synchronisation asynchrone des données

La synchronisation asynchrone des données permet à une application SQL Server Compact 3.5 (SQL Server Compact 3.5) de continuer à traiter d'autres informations tout en attendant que la synchronisation des données soit terminée.

Imaginons, par exemple, une application qui effectue régulièrement une synchronisation des données et envoie de grandes quantités de données via une connexion lente. Pendant la synchronisation des données, l'application ne répond pas aux entrées utilisateur. L'utilisateur peut alors penser que l'application ne fonctionne pas correctement. Pour rendre l'application plus conviviale au cours de la synchronisation des données, vous pouvez afficher une barre de progression sur l'appareil de type « smart device » afin de montrer l'état de la synchronisation. À l'aide de la synchronisation asynchrone des données, vous pouvez démarrer la synchronisation des données, puis intercepter les événements de la synchronisation lorsqu'ils se produisent. L'application peut alors afficher ces événements à l'utilisateur.

ms171881.note(fr-fr,SQL.100).gifRemarque :
L'utilisation de la synchronisation asynchrone des données vous permet également d'annuler une synchronisation des données qui est déjà en cours.

Utilisation des méthodes de synchronisation asynchrone des données

Si vous développez votre application SQL Server Compact 3.5 à l'aide du Microsoft .NET Compact Framework et de l'un des langages de programmation managés ( Microsoft Visual Basic ou Microsoft Visual C#), les appels asynchrones sont gérés comme les autres appels asynchrones dans le Microsoft .NET Framework. Si vous développez une application native à l'aide de Microsoft Visual C++ for Devices, vous utilisez la propriété SyncStatusReport de l'interface ISSCEMerge.

Utilisation de l'API managée

Trois types d'événements dans l'espace de noms System.Data.SqlServerCE sont utilisés dans la synchronisation asynchrone des données :

  • OnStartTableUpload
    Cet événement se produit lorsque chaque table de l'abonnement est téléchargée vers le serveur de publication.
  • OnStartTableDownload
    Cet événement se produit lorsque chaque table est renvoyée du serveur de publication.
  • OnSynchronization
    Cet événement se produit lorsque le réconciliateur est démarré ou que le code effectue une vérification de la synchronisation.

Vous utilisez également les trois méthodes suivantes de l'objet Replication :

  • BeginSynchronize
    Cette méthode commence le processus de synchronisation à l'aide d'un objet IAsyncResult .
  • EndSynchronize
    Vous appelez EndSynchronize lorsque le serveur renvoie un message de fin de synchronisation.
  • CancelSynchronize
    Vous pouvez appeler la méthode CancelSynchronize pour annuler à tout moment la synchronisation.

Les étapes suivantes montrent le processus de synchronisation asynchrone des données avec l'API managée :

  1. Créez un objet Replication et définissez ses propriétés.
  2. Créez un objet IAsyncResult et définissez-le avec la méthode BeginSynchronize de l'objet Replication.
  3. Transférez les propriétés suivantes à la méthode BeginSynchronize :
    • La méthode de rappel (événement AysncCallback).
    • Une méthode pour gérer l'événement OnStartTableUpload.
    • Une méthode pour gérer l'événement OnStartTableDownload.
    • Une méthode pour gérer l'événement OnSynchronization.
  4. Ajoutez du code à la méthode de rappel pour appeler la méthode EndSynchronize.
  5. Appelez la méthode AsyncWaitHandle de l'objet IAsyncResult.
  6. Dans les gestionnaires d'événements, vous pouvez ajouter du code pour signaler l'état actuel de la synchronisation ou pour l'annuler.
ms171881.note(fr-fr,SQL.100).gifRemarque :
Les rapports d'état sont envoyés lors de quatre événements : au début du téléchargement de chaque table utilisateur vers le serveur, au début du téléchargement de chaque table utilisateur, lorsque le réconciliateur est démarré et lorsque la valeur « Pourcentage accompli » du réconciliateur est mise à jour.

Utilisation de l'API native

Comme pour la synchronisation synchrone des données, vous utilisez l'interface ISSCEMerge pour effectuer une synchronisation asynchrone des données. Contrairement au processus en code managé, la synchronisation asynchrone des données est toujours un processus monothread. Les notifications de synchronisation sont sur le même thread que la synchronisation ; vous utilisez la propriété SyncStatusReport de l'interface ISSCEMerge pour extraire les rapports d'état de synchronisation.

Voir aussi

Concepts

Synchronisation des données (SQL Server Compact)
Synchronisation de données synchrones
Accès multi-utilisateur et synchronisation

Autres ressources

Procédure : synchroniser de manière asynchrone des données (par programme)

Aide et informations

Obtention d'aide (SQL Server Compact 3.5 Service Pack 1)