编辑似乎我下面的原始帖子可能有点长。
简单地说,我可以生成一些 AppDomain 并确保它们不能以任何方式相互通信吗?
有一个名为RoboCup 3D的竞技机器人足球模拟联赛。基本规则之一是代理之间的所有通信都通过中央服务器进行。该服务器强制执行模拟规则,例如限制跨场消息传递的距离和速率。
团队由几个代理组成。规则规定每个代理必须在自己的进程中运行。基本原理是可以检测到进程间通信。
我为 RoboCup 编写了一个名为 TinMan 的 .NET 库。有一些关于明年首次用 .NET 编写的参赛团队的相关邮件列表的讨论。顺便说一句,它们将在 Mono 上运行。
在像 CLR 这样的托管环境中,我相信在单个 CLR 实例中运行所有代理会带来性能优势,这主要是因为运行单个 GC。如果是这种情况,我已经问过使用同一进程的单独 AppDomain 是否可以接受的问题。
我想知道是否可以检测(甚至阻止)AppDomains 之间的通信。如果是这样,那么用 .NET 编写的 RoboCup 团队更有可能在单个进程中运行他们的团队。