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