Compartir a través de


Ordenación causal de llamadas asincrónicas

En una aplicación RPC asincrónica, es posible que un subproceso de cliente realice una segunda llamada asincrónica en un identificador de enlace antes de que se haya completado una llamada anterior realizada en ese identificador. La biblioteca en tiempo de ejecución rpc controla esta situación de la siguiente manera:

  • El mecanismo RPC asincrónico garantiza que las llamadas asincrónicas realizadas en el mismo identificador de enlace, en el mismo subproceso, en el mismo nivel de seguridad, se envían en el orden en que se realizaron. La ejecución real de las llamadas puede producirse fuera de orden.
  • Al igual que con las llamadas sincrónicas, las llamadas a procedimientos remotos asincrónicos de diferentes subprocesos de cliente se ejecutan simultáneamente.
  • Si una llamada asincrónica de una aplicación cliente va seguida de una o varias llamadas sincrónicas, la llamada asincrónica se puede ejecutar mientras se ejecutan las llamadas sincrónicas. Independientemente del estado de la llamada asincrónica, las llamadas sincrónicas se ejecutan en el orden en que el servidor los recibe.
  • Si una aplicación cliente selecciona la ordenación nocausal de un identificador de enlace determinado, deshabilita la serialización para ese identificador. Las aplicaciones habilitan el orden nocausal llamando a RpcBindingSetOption con el parámetro Option establecido en RPC_C_OPT_BINDING_NONCAUSAL y el parámetro OptionValue establecido en TRUE. Para más información, consulte Constantes de opción de enlace.