我意識到一個理性的膝蓋反應會是「遠離你白癡!閱讀MSDN文檔。」關於.Net Remoting的每一個信息都可以找到.Net Remoting是在進程間通信的環境中:套接字,共享內存,管道......涉及IPC的經典,但AppDomain並不是一個真正的過程。然而,AppDomain似乎享受了成爲一個好處的大部分好處。從學術角度來看,操作系統IPC的原始語與駐留在同一進程中的實體之間的通信相比是沉重的。當通信在同一個進程中跨AppDomain邊界時是否有一個特殊的AppDomain管道?我對此表示懷疑。如果MS在Windows內核中改變了進程隔離的基本原理以適應AppDomain,我會感到震驚。在同一過程中用於在.Net AppDomain之間進行通信的底層機制是什麼?
4
A
回答
4
這種情況下有一條快速路徑。不需要進程間通信,因爲appdomains生活在同一個進程中,並且CLR可以完全訪問所有的進程和完整的地址空間。它實際上只是調用堆棧中的一些標記,用於安全性和異常處理目的以及appdomains提供的可卸載性。
1
對你的問題或更多歷史腳註的附註。這不是全新的,COM在線程之間的封送接口中有一些類似的語義:一個線程會使用CoMarshalInterThreadInterfaceInStream將接口封送到一個流中,然後另一個線程將使用CoGetInterfaceAndReleaseStream從流中抽取出接口。
0
進程中AppDomain之間進行通信的基本方式實際上是遠程處理。這允許一個對象存在於一個AppDomain中,並讓其他人通過另一個域中的透明代理進行通信。
是的AppDomain並不是一個真正的過程,但它們被認爲是最輕量級的過程。
相關問題
- 1. 什麼.net框架用於在兩個進程之間進行通信
- 2. C#.NET通過網絡在計算機之間進行通信
- 3. 在不同計算機上的進程之間進行通信
- 4. 在同一臺機器上的ASP.NET應用程序之間進行通信
- 5. 在python和haskell進程之間進行通信的ipc庫是什麼?
- 6. 通過本地網絡在.NET桌面應用程序之間進行通信
- 7. 在同一臺計算機上運行的Python軟件之間進行通信的最佳方式是什麼?
- 8. 通過win消息在應用程序之間進行通信
- 9. 通過網絡在應用程序之間進行通信
- 10. 如何在同一臺機器上的程序之間進行通信?
- 11. 使用tcp在同一臺機器上的進程間通信
- 12. 什麼是pythonic模塊之間進行通信的方式?
- 13. .NET Concurrent Collections可用於進程間x32與x64通信之間的進程嗎?
- 14. 在兩臺機器上運行的進程之間的通信
- 15. .NET進程間通信的最佳選擇是什麼?
- 16. 通過非UI機制在Android App和UIAutomator之間進行通信
- 17. Flash VM在底層使用什麼進行繪製?
- 18. 線程之間可以通過LINX通信進行通信嗎?
- 19. 如何在C#中進行進程間通信時進行進程間通信?
- 20. 在兩個層之間進行通信的場景的cocos2d 3
- 21. 在.NET中的線程之間使用volatile進行單向通信
- 22. 如何通過wifi在計算機和智能手機之間進行通信
- 23. 如何在python中的兩個進程之間進行通信
- 24. 與Windows應用程序之間進行通信的最佳方式是什麼?
- 25. 在Android手機和使用java的TCP之間進行通信
- 26. 什麼WCF綁定用於在同一臺機器上具有不同權限的兩個進程之間進行通信?
- 27. 在Swing應用程序中的組件之間進行通信
- 28. 使用隊列在D中的線程之間進行通信
- 29. 是否有任何.NET Framework 4 API或庫用於使用藍牙在計算機之間進行通信?
- 30. 同一進程中線程之間的低延遲通信
您是否知道描述此實現的任何文檔? – 2009-07-25 21:14:36