Condividi tramite


Programmazione asincrona in .NET Remoting

In uno scenario .NET Remoting la programmazione asincrona è identica a quella in un singolo contesto o dominio di applicazione, ad eccezione della configurazione e dei requisiti del sistema .NET Remoting stesso. Per un esempio completo in cui si utilizzano .NET Remoting e delegati sincroni e asincroni, vedere Esempio di codice di .NET Remoting: programmazione asincrona in .NET Remoting.

Analogamente alla programmazione asincrona in un dominio di applicazione singolo, l'utilizzo della programmazione asincrona in uno scenario .NET Remoting comporta gli aspetti riportati di seguito.

  • Il chiamante decide se una determinata chiamata remota è asincrona.

  • Non occorre che i tipi remoti supportino in modo esplicito il comportamento asincrono tramite i rispettivi client.

  • Nel runtime si applica la completa indipendenza dai tipi.

  • È necessario utilizzare correttamente gli oggetti System.Threading per attendere o sincronizzare i metodi.

In un'applicazione in cui si eseguono chiamate oltre i limiti di un contesto o di un dominio di applicazione, tuttavia, è necessario configurare il sistema .NET Remoting e verificare che il modello di programmazione client sia qualificato anche come destinazione per una chiamata remota. Se si utilizzano chiamate asincrone, infatti, sarà possibile utilizzare una funzione di callback che verrà richiamata dal server mediante il sistema .NET Remoting. Se, ad esempio, un delegato viene passato a un metodo statico che non può essere utilizzato in modalità remota o se si dimentica di impostare su "0" una porta per il canale in modo da consentire al sistema di selezionare una porta client, la chiamata al server potrebbe essere completata, ma non sarà possibile ottenere il risultato in quanto la funzione di callback relativa al client non verrà completata.

Non è necessario che il client estenda MarshalByRefObject o configuri tipi remoti. È necessario tuttavia che segua le stesse regole applicabili a qualsiasi tipo remoto destinato a rappresentare un server.

  • La funzione di callback deve essere ricevuta da un'istanza.

  • È necessario registrare un canale per attendere la funzione di callback.

Vedere anche

Attività

Procedura: chiamare i metodi di un oggetto remoto in modo asincrono

Concetti

Problemi relativi alla chiamata di metodi di oggetti remoti in modo asincrono
Esempio di codice di .NET Remoting: programmazione asincrona in .NET Remoting
Configurazione di applicazioni remote

Altre risorse

Cenni preliminari su .NET Framework Remoting