共用方式為


非同步遠端處理

遠端處理案例中的非同步程式設計,與單一應用程式定義域或內容中的非同步程式設計相同,但 .NET 遠端處理本身的組態和需求除外。如需使用 .NET 遠端處理和同步及非同步委派的完整範例,請參閱遠端處理範例:非同步遠端處理

就像單一應用程式定義域非同步程式設計一樣,在 .NET 遠端處理案例中使用非同步程式設計,表示:

  • 由呼叫端決定特定遠端呼叫是否為非同步。

  • 遠端型別不必明確支援其用戶端的非同步行為。

  • 執行階段會強制完整的型別安全。

  • 您必須適當地使用 System.Threading 物件,等待或同步處理您的方法。

不過,在跨應用程式定義域或內容界限呼叫的應用程式中,.NET 遠端處理需要您設定 .NET 遠端處理系統,並確定用戶端程式撰寫模型也會是遠端呼叫的合格目標。原因十分簡單:如果您使用非同步呼叫,則可能會使用 .NET 遠端處理系統將從伺服器叫用的 callback 函式。例如,如果您將委派傳遞給靜態方法 (不可進行遠端處理) 或忘記將通道的連接埠設定為 "0" (讓系統代表您選取用戶端連接埠),則對伺服器的呼叫可以完成,但因為回呼用戶端的呼叫不會完成,所以沒有方法可取得結果。

用戶端本身並不需要擴充 MarshalByRefObject 或設定任何遠端型別,但在其他情況下,如果遠端型別要成為伺服器,則必須遵循相同的規則。

  • 必須要有執行個體接收 callback 函式。

  • 必須要有通道註冊為接聽 callback 函式。

請參閱

工作

如何非同步呼叫遠端物件的方法

概念

非同步呼叫遠端物件之方法的問題
遠端處理範例:非同步遠端處理
遠端應用程式組態

其他資源

.NET Framework 遠端處理概觀