异步调用的因果顺序

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

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