Ordinamento causale delle chiamate asincrone
In un'applicazione RPC asincrona è possibile che un thread client eseeva 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 può verificarsi in ordine non corretto.
- Come per le chiamate sincrone, le chiamate asincrone di routine remota da thread client diversi vengono eseguite contemporaneamente.
- Se una chiamata asincrona da un'applicazione client viene 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 condizionale per un handle di associazione specifico, disabilita la serializzazione per tale handle. Le applicazioni consentono l'ordinamento non condizionale chiamando RpcBindingSetOption con il parametro Option impostato su RPC_C_OPT_BINDING_NONCAUSAL e il parametro OptionValue impostato su TRUE. Per informazioni dettagliate, vedere Costanti delle opzioni di associazione.