非同步呼叫的因果順序
在非同步 RPC 應用程式中,用戶端執行緒可以在先前對該控制碼進行的呼叫完成之前,先對系結控制碼進行第二個非同步呼叫。 RPC 執行時間程式庫會處理這種情況,如下所示:
- 非同步 RPC 機制可確保在相同執行緒上,在相同安全性層級上對相同系結控制碼進行的非同步呼叫,會依其進行的順序進行分派。 呼叫的實際執行可能會依序發生。
- 如同同步呼叫,來自不同用戶端執行緒的非同步遠端程序呼叫會同時執行。
- 如果用戶端應用程式的非同步呼叫後面接著一或多個同步呼叫,非同步呼叫可以在同步呼叫執行時執行。 不論非同步呼叫的狀態為何,同步呼叫都會依伺服器接收的循序執行。
- 如果用戶端應用程式針對特定系結控制碼選取非因果順序,則會停用該控制碼的序列化。 應用程式會呼叫 RpcBindingSetOption 並將 Option 參數設定為 RPC_C_OPT_BINDING_NONCAUSAL ,並將 OptionValue 參數設定為 TRUE,以啟用非因果順序。 如需詳細資訊,請參閱 系結選項常數。