Wird aufgerufen, wenn der MobiLink-Listener für serverinitiierte Synchronisationen die Anwendung aufruft, um die Synchronisation auszuführen
Visual Basic Public Sub ServerSyncInvoked( _ ByVal messageName As String _ )
C# public void ServerSyncInvoked( string messageName );
messageName Der Name der Nachricht, die an die Anwendung gesendet wurde
Diese Methode wird von einem eigenen Thread aufgerufen. Um Multi-Thread-Probleme zu vermeiden, sollte sie ein Ereignis an die Benutzerschnittstelle senden. Bei der Verwendung von Multi-Threading sollten Sie eine separate Verbindung sowie das Sperren-Schlüsselwort benutzen, um auf die Objekte zuzugreifen, die gemeinsam mit dem Rest der Anwendung verwendet werden.
Die folgenden Codefragmente zeigen, wie eine Anforderung zur Server-Synchronisation empfangen und eine Synchronisation auf dem UI-Thread ausgeführt wird.
' Visual Basic Imports iAnywhere.Data.UltraLite Public Class MainWindow Inherits System.Windows.Forms.Form Implements ULServerSyncListener Private conn As ULConnection Public Sub New(ByVal args() As String) MyBase.New() 'This call is required by the Windows Form Designer. InitializeComponent() 'Add any initialization after the InitializeComponent() call ULConnection.DatabaseManager.SetServerSyncListener( _ "myCompany.mymsg", "myCompany.myapp", Me _ ) 'Create Connection ... End Sub Protected Overrides Sub OnClosing( _ ByVal e As System.ComponentModel.CancelEventArgs _ ) ULConnection.DatabaseManager.SetServerSyncListener( _ Nothing, Nothing, Nothing _ ) MyBase.OnClosing(e) End Sub Public Sub ServerSyncInvoked(ByVal messageName As String) _ Implements ULServerSyncListener.ServerSyncInvoked Me.Invoke(New EventHandler(AddressOf Me.ServerSyncAction)) End Sub Public Sub ServerSyncAction( _ ByVal sender As Object, ByVal e As EventArgs _ ) ' Do Server sync conn.Synchronize() End Sub End Class |
// C# using iAnywhere.Data.UltraLite; public class Form1 : System.Windows.Forms.Form, ULServerSyncListener { private System.Windows.Forms.MainMenu mainMenu1; private ULConnection conn; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after // InitializeComponent call // ULConnection.DatabaseManager.SetServerSyncListener( "myCompnay.mymsg", "myCompany.myapp", this ); // Create connection ... } protected override void Dispose( bool disposing ) { base.Dispose( disposing ); } protected override void OnClosing( System.ComponentModel.CancelEventArgs e ) { ULConnection.DatabaseManager.SetServerSyncListener( null, null, null ); base.OnClosing(e); } public void ServerSyncInvoked( string messageName ) { this.Invoke( new EventHandler( ServerSyncHandler ) ); } internal void ServerSyncHandler(object sender, EventArgs e) { conn.Synchronize(); } } |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |