2009-07-25 48 views
4

我意識到一個理性的膝蓋反應會是「遠離你白癡!閱讀MSDN文檔。」關於.Net Remoting的每一個信息都可以找到.Net Remoting是在進程間通信的環境中:套接字,共享內存,管道......涉及IPC的經典,但AppDomain並不是一個真正的過程。然而,AppDomain似乎享受了成爲一個好處的大部分好處。從學術角度來看,操作系統IPC的原始語與駐留在同一進程中的實體之間的通信相比是沉重的。當通信在同一個進程中跨AppDomain邊界時是否有一個特殊的AppDomain管道?我對此表示懷疑。如果MS在Windows內核中改變了進程隔離的基本原理以適應AppDomain,我會感到震驚。在同一過程中用於在.Net AppDomain之間進行通信的底層機制是什麼?

回答

4

這種情況下有一條快速路徑。不需要進程間通信,因爲appdomains生活在同一個進程中,並且CLR可以完全訪問所有的進程和完整的地址空間。它實際上只是調用堆棧中的一些標記,用於安全性和異常處理目的以及appdomains提供的可卸載性。

+0

您是否知道描述此實現的任何文檔? – 2009-07-25 21:14:36

0

進程中AppDomain之間進行通信的基本方式實際上是遠程處理。這允許一個對象存在於一個AppDomain中,並讓其他人通過另一個域中的透明代理進行通信。

是的AppDomain並不是一個真正的過程,但它們被認爲是最輕量級的過程。

相關問題