Condividi tramite


Ordinamento causale delle chiamate asincrone

In un'applicazione RPC asincrona, è possibile che un thread client esebri una seconda chiamata asincrona su un handle di associazione prima del completamento di una chiamata precedente su tale handle. La libreria di runtime RPC gestisce questa situazione nel modo seguente:

  • Il meccanismo RPC asincrono garantisce che le chiamate asincrone effettuate sullo stesso handle di associazione, sullo stesso thread, allo stesso livello di sicurezza, vengano inviate nell'ordine in cui sono state effettuate. L'esecuzione effettiva delle chiamate potrebbe avvenire in un ordine diverso.
  • Come per le chiamate sincrone, le chiamate asincrone di procedure remote provenienti da thread client diversi vengono eseguite simultaneamente.
  • Se una chiamata asincrona da un'applicazione client è seguita da una o più chiamate sincrone, la chiamata asincrona può essere eseguita durante l'esecuzione delle chiamate sincrone. Indipendentemente dallo stato della chiamata asincrona, le chiamate sincrone vengono eseguite nell'ordine in cui vengono ricevute dal server.
  • Se un'applicazione client seleziona l'ordinamento non causale per un handle di associazione specifico, disabilita la serializzazione per tale handle. Le applicazioni abilitano l'ordinamento non causale chiamando RpcBindingSetOption con il parametro Option impostato su RPC_C_OPT_BINDING_NONCAUSAL e il parametro OptionValue impostato su TRUE. Per dettagli, vedere Costanti delle opzioni di associazione.