Share via


非同步遠端處理

本主題專門說明一項為了在現有應用程式中提供回溯相容性而保留的舊有技術,不建議用於新的開發工作。分散式應用程式應使用 Windows Communication Foundation (WCF) 進行開發。

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

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

  • 呼叫端將決定特定的遠端呼叫是否非同步。

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

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

  • 您必須適時地使用 System.Threading 物件,來等候或同步化您的方法。

然而,當應用程式跨應用程式定義域或內容界限進行呼叫,.NET 遠端處理會要求您設定用戶端應用程式,方便它接收來自伺服器的遠端呼叫 (可藉由指定用戶端通道的通訊埠號碼 "0" 來完成)。要求您這麼做的原因在於,一旦執行了非同步呼叫,就必須允許伺服器回呼至用戶端才能擷取呼叫結果。

用戶端不需要延伸 MarshalByRefObject 或自行設定任何遠端型別,但是卻必須遵循其他將成為伺服器之遠端型別所需遵循的規則。

  • 回呼方法必須是執行個體方法。靜態方法呼叫無法遠端處理。

  • 要接聽回呼函式,必須註冊通道。

另請參閱

工作

HOW TO:以非同步方式呼叫遠端物件的方法

概念

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

其他資源

.NET Framework 遠端處理概觀