如果在同一个进程中的不同appdomain,unsafe code+pointer应该可以。
但是多个进程就不行了,如果数据量不大的话,可以用Serialization机制来传递。数据量大的话还使用API的FileMapping机制来实现吧。

解决方案 »

  1.   

    要开辟内在当然得用“小指指“了,但是只能在unsafe{}块中用哦......
      

  2.   

    说实话,在同一个进程中运行多个AppDomain并不是很有用。
    Serialization机制则完全是绕过了对共享内存的需求,当传输比较大的内存块时效率很差。
    至于FileMapping Object,我记得在ms newsgroup上看到过有人问,最后的答案是:很遗憾,目前.NET还不支持FileMapping Object,只有通过p/invoke调用API了。
      

  3.   

    另外,.NET的所有Stream对象都支持Marshal By Ref的调用方式,所以使用MemroyStream/BufferedStream + Remoting机制同样可以模拟出共享内存的效果,当然仍然是假的,传输量大的时候依然效率不障。