Compartir a través de


Interacción remota asincrónica

La programación asincrónica en un escenario de interacción remota es idéntica a la programación asincrónica en un contexto o dominio de una sola aplicación, excepto en la configuración y los requisitos de .NET Remoting propiamente dicho. Para obtener un ejemplo completo en el que se utilice .NET Remoting y delegados sincrónicos y asincrónicos, vea Ejemplo de interacción remota: Interacción remota asincrónica.

Al igual que con la programación asincrónica en un dominio de una sola aplicación, el uso de la programación asincrónica en un escenario de .NET Remoting significa que:

  • El llamador decide si una determinada llamada remota es asincrónica.

  • Los tipos remotos no tienen que admitir explícitamente el comportamiento asincrónico de sus clientes.

  • El motor de tiempo de ejecución impone una total seguridad de tipos.

  • Debe usar los objetos System.Threading correctamente para esperar o sincronizar sus métodos.

No obstante, en una aplicación que realiza llamadas más allá de los límites de un dominio de aplicación o de un contexto, .NET Remoting requiere configurar el sistema .NET Remoting y garantizar que el modelo de programación en el cliente también sea válido como destino de una llamada remota. La razón es bien sencilla: si usa llamadas asincrónicas, podrá usar una función de devolución de llamada a la que el sistema .NET Remoting llamará desde el servidor. Por ejemplo, si pasa un delegado a un método estático (que no se puede utilizar de forma remota) o si olvida establecer en "0" (cero) un puerto del canal (para permitir que el sistema seleccione un puerto del cliente), su llamada al servidor podrá realizarse pero no podrá obtener de ninguna manera el resultado porque la devolución de llamada a su cliente no llegará a realizarse.

El cliente no necesita extender MarshalByRefObject ni configurar ningún tipo remoto por sí mismo, pero, por lo demás, debe respetar las mismas reglas que cualquier tipo remoto destinado a ser servidor:

  • Una instancia debe recibir la función de devolución de llamada.

  • Un canal debe estar registrado para que escuche la función de devolución de llamada.

Vea también

Tareas

Cómo llamar a métodos de objeto remoto de forma asincrónica

Conceptos

Problemas con métodos de llamada asincrónica de objetos remotos
Ejemplo de interacción remota: Interacción remota asincrónica
Configuración de aplicaciones remotas

Otros recursos

Información general de .NET Framework Remoting