Asynchrones Remoting
Die asynchrone Programmierung in einem Remotingszenario ist identisch mit der asynchronen Programmierung in einer einzigen Anwendungsdomäne bzw. einem einzigen Kontext. Ausnahmen bilden hier die Konfiguration und die Anforderungen für .NET Remoting selbst. Ein umfassendes Beispiel für die Verwendung von .NET Remoting sowie synchroner und asynchroner Delegaten finden Sie unter Remotingbeispiel: Asynchrones Remoting.
Ebenso wie die asynchrone Programmierung in nur einer Anwendungsdomäne bedeutet die Verwendung der asynchronen Programmierung in einem .NET Remoting-Szenario Folgendes:
Der Aufrufer entscheidet, ob ein bestimmter Remoteaufruf asynchron ist.
Remotetypen müssen asynchrones Verhalten ihrer Clients nicht ausdrücklich unterstützen.
Die Laufzeit erzwingt vollständige Typsicherheit.
Sie müssen die System.Threading-Objekte ordnungsgemäß verwenden, um zu warten oder Methoden zu synchronisieren.
Bei einer Anwendung, die Aufrufe über die Grenzen von Anwendungsdomänen oder Kontexten hinweg ausführt, ist es für .NET Remoting jedoch erforderlich, das .NET Remoting-System zu konfigurieren und sicherzustellen, dass auch das Clientprogrammiermodell als Ziel eines Remoteaufrufs geeignet ist. Dies hat einen einfachen Grund: Wenn Sie mit asynchronen Aufrufen arbeiten, könnten Sie ohne Weiteres eine Rückruffunktion verwenden, die das .NET Remoting-System vom Server aufruft. Wenn Sie z. B. einen Delegaten an eine statische Methode (also eine nicht remotefähige Methode) übergeben oder vergessen, für einen Port für den Channel "0" festzulegen (um die automatische Auswahl eines Clientports durch das System zu ermöglichen), wird u. U. der Aufruf an den Server abgeschlossen, Sie haben jedoch keine Möglichkeit, das Ergebnis abzurufen, da der Rückruf an den Client nicht abgeschlossen wird.
Der Client muss MarshalByRefObject nicht erweitern oder selbst einen Remotetyp konfigurieren, muss aber sonst denselben Regeln folgen wie jeder Remotetyp, der als Server verwendet werden soll:
Eine Instanz muss die Rückruffunktion empfangen.
Ein Channel muss für die Überwachung der Rückruffunktion registriert sein.
Siehe auch
Aufgaben
Gewusst wie: Asynchrones Aufrufen von Methoden für ein Remoteobjekt
Konzepte
Probleme beim asynchronen Aufrufen von Methoden für Remoteobjekte
Remotingbeispiel: Asynchrones Remoting
Konfiguration von Remoteanwendungen