编辑似乎我原来在下面的文章可能有点长。
简单地说,我是否可以生成一些AppDomains,并确保它们之间不能以任何方式进行通信?
有一个有竞争力的机器人足球模拟联盟叫做RoboCup 3D。基本规则之一是代理之间的所有通信都通过中央服务器进行。此服务器强制执行模拟规则,例如限制在字段中传递消息的距离和速率。
团队由几个特工组成。规则规定每个代理必须在自己的进程中运行。其基本原理是可以检测到进程间通信。
我写了一个名为.NET RoboCup的TinMan库。明年第一次用.NET编写的团队的相关邮件列表上有一些讨论。作为旁白,他们将在Mono上运行。
在像CLR这样的托管环境中,我相信在CLR的单个实例中运行所有代理会带来性能上的好处,这主要是因为运行了一个GC。如果是这样的话,我已经问了一个问题,如果是这样的话,使用相同进程的单独AppDomains是否可以接受。
我想知道是否有可能检测(甚至阻止) AppDomains之间的通信。如果是这样的话,那么用.NET编写的.NET团队更有可能在一个单独的过程中运行他们的团队。
发布于 2011-11-15 01:27:01
AFAIK,不。AppDomains由CLR管理;您不能拦截AppDomain间的通信以防止它(例如,这段代码在什么AppDomain中运行?)
https://stackoverflow.com/questions/3877790
复制相似问题