异步调用的因果顺序

在异步 RPC 应用程序中,客户端线程可以在绑定句柄的早期调用完成之前对绑定句柄进行第二次异步调用。 RPC 运行时库可处理这种情况,如下所示:

  • 异步 RPC 机制保证在同一线程上在同一个安全级别上对同一绑定句柄进行的异步调用按其发出的顺序进行调度。 实际执行调用可能会不按顺序进行。
  • 与同步调用一样,来自不同客户端线程的异步远程过程调用同时执行。
  • 如果来自客户端应用程序的异步调用后跟一个或多个同步调用,则可以在执行同步调用时执行异步调用。 无论异步调用的状态如何,同步调用都按服务器接收的顺序执行。
  • 如果客户端应用程序为特定绑定句柄选择非因果顺序,则会禁用该句柄的序列化。 应用程序通过调用 RpcBindingSetOptionOption 参数设置为 RPC_C_OPT_BINDING_NONCAUSAL, OptionValue 参数设置为 TRUE)来启用非因果排序。 有关详细信息,请参阅 绑定选项常量