共用方式為


異步 RPC

異步遠端過程調用 (RPC) 是一個Microsoft延伸模組,可解決由 Open Software Foundation–Distributed Computing Environment (OSF-DCE) 所定義的數個傳統 RPC 模型限制。 異步 RPC 會將其傳回值分隔遠端過程調用,其可解決傳統同步 RPC 的下列限制:

  • 來自單個線程用戶端的多個未處理呼叫。 在傳統的 RPC 模型中,用戶端會在遠端過程調用中封鎖,直到呼叫傳回為止。 這可防止用戶端有多個未完成的呼叫,同時仍有線程可供執行其他工作。
  • 緩慢或延遲的用戶端。 產生數據速度緩慢的用戶端可能會想要使用初始數據進行遠端過程調用,然後在產生數據時提供其他數據。 這無法與傳統 (同步) RPC 搭配使用。
  • 伺服器緩慢或延遲。 遠程過程調用需要很長的時間才能完成,將會在工作的持續時間內將分派線程系結起來。 使用異步 RPC 時,伺服器可以啟動個別的(異步)作業來處理要求,並在可用時傳回回復。 當結果變成可用時,伺服器也可以以累加方式傳送回復,而不需要在遠端呼叫期間系結分派線程。 藉由讓用戶端應用程式異步,您可以防止伺服器變慢,而不需要將用戶端應用程式綁起來。
  • 傳輸大量數據。 在用戶端與伺服器之間傳輸大量數據,特別是透過緩慢的連結,在傳輸期間將用戶端線程和伺服器管理員線程系結起來。 使用異步 RPC 和管道時,可以累加方式進行數據傳輸,而不會封鎖用戶端或伺服器執行其他工作。

您可以使用 [異步] 屬性來宣告函式,以利用異步 RPC 機制。 由於您在屬性組態檔 (ACF) 中進行此宣告,因此不需要對接口定義語言 (IDL) 檔案進行任何變更;異步 RPC 對有線通訊協定沒有任何影響(用戶端與伺服器之間如何傳輸數據)。 這表示同步和異步用戶端都可以與異步伺服器應用程式通訊。

本節概述如何使用異步 RPC 開發分散式應用程式。 概觀會顯示在下列各節中: