编辑似乎我下面的原帖可能有点长。
简单地说,我可以生成一些AppDomains并确保它们无法以任何方式相互通信吗?
有一个名为RoboCup 3D的竞争机器人足球模拟联盟。其中一个基本规则是代理之间的所有通信都通过中央服务器进行。此服务器强制执行模拟规则,例如限制跨越字段传递的消息的距离和速率。
团队包括几个代理人。规则规定每个代理必须在其自己的进程中运行。理由是可以检测到进程间通信。
我撰写了.NET library for RoboCup called TinMan。关于正在输入的团队的相关邮件列表,有一些关于明年第一次用.NET编写的话题。另外,它们将在Mono上运行。
在像CLR这样的托管环境中,我相信在单个CLR实例中运行所有代理会带来性能优势,主要是因为运行单个GC。我已经问过这样一个问题:如果是这种情况,是否可以使用相同进程的单独AppDomains。
我是否想知道是否可以检测(甚至阻止)AppDomains之间的通信。如果是这样,那么用.NET编写的RoboCup团队就有可能在一个过程中运行他们的团队。
答案 0 :(得分:1)
AFAIK,没有。 AppDomains由CLR管理;你不能拦截inter-AppDomain通信以防止它(例如,这个代码运行的AppDomain是什么?)