C# 使用NetPipes跨应用程序域传递非托管IntPtr

C# 使用NetPipes跨应用程序域传递非托管IntPtr,c#,marshalling,appdomain,intptr,netnamedpipebinding,C#,Marshalling,Appdomain,Intptr,Netnamedpipebinding,.NET 4.5,赢得864位 我有一个IntPtr到4 GB的非托管阵列。我想将它异步传递给WCF NetPipes Windows服务,该服务应该读取它,将它推送到DB,然后释放它 我知道调用者和被调用者位于两个不同的AppDomain上,因此这可能是不可能的 这可能吗?如何实现 当然,我可以将数据复制到托管阵列,然后将托管阵列传递给服务,但这在性能方面并不好 注意:我问了一个关于如何在队列上传递IntPtr的问题,这个问题和另一个问题的答案将帮助我做出设计决策。您是否使用System.IO

.NET 4.5,赢得864位

我有一个IntPtr到4 GB的非托管阵列。我想将它异步传递给WCF NetPipes Windows服务,该服务应该读取它,将它推送到DB,然后释放它

我知道调用者和被调用者位于两个不同的AppDomain上,因此这可能是不可能的

这可能吗?如何实现

当然,我可以将数据复制到托管阵列,然后将托管阵列传递给服务,但这在性能方面并不好


注意:我问了一个关于如何在队列上传递IntPtr的问题,这个问题和另一个问题的答案将帮助我做出设计决策。

您是否使用System.IO.MemoryMappedFile.MemoryMappedFile类在进程之间共享内存?@Panosrontgiannis否,我是否应该?是的,请看一看。检查这个简单的介绍如果AppDomains在同一个进程中,内存未被管理,也在同一个进程中,那么指针应该在两个AppDomains中都有效,并且不需要使用内存映射文件。@如果我错了,Jamesthrley请纠正我,如果一个进程托管在Windows激活服务下,而另一个进程托管在Windows服务下,则它们是两个AppDomain。对吗?