C# 是否有任何AppDomain/";“动态编译代码”;限制?

C# 是否有任何AppDomain/";“动态编译代码”;限制?,c#,limit,appdomain,dynamic-compilation,C#,Limit,Appdomain,Dynamic Compilation,我计划写一个游戏,用户必须编写自己的C代码才能玩。 因为我不能信任用户提交的代码,所以我想为每个用户创建一个AppDomain。 每个用户都可以编写几个类,所以我需要动态编译和实例化每个类。其中一些类将有多个实例 我不想限制用户数量,但假设有几百个用户注册。 这意味着我需要几百个AppDomain,并且我正在编译/实例化更多的用户代码类 在达到前面提到的用户数之前,我会更早地达到任何限制吗?(CPU/内存)可以创建的AppDomain数量受可用内存量的限制。因此,内存越多,可以创建的AppDom

我计划写一个游戏,用户必须编写自己的C代码才能玩。 因为我不能信任用户提交的代码,所以我想为每个用户创建一个AppDomain。 每个用户都可以编写几个类,所以我需要动态编译和实例化每个类。其中一些类将有多个实例

我不想限制用户数量,但假设有几百个用户注册。 这意味着我需要几百个AppDomain,并且我正在编译/实例化更多的用户代码类


在达到前面提到的用户数之前,我会更早地达到任何限制吗?(CPU/内存)

可以创建的AppDomain数量受可用内存量的限制。因此,内存越多,可以创建的AppDomains就越多。CLR没有规定任何限制


如果您想了解您愿意在其上运行应用程序的特定操作系统/硬件所拥有的应用程序域的数量,您可以编写一个简单的应用程序,以恒定的速率吐出应用程序域,并查看在崩溃之前可以走多远。虽然不是精确的值,但它可以为您提供一个很好的近似值。

您可以创建的AppDomain数量受可用内存量的限制。因此,内存越多,可以创建的AppDomains就越多。CLR没有规定任何限制


如果您想了解您愿意在其上运行应用程序的特定操作系统/硬件所拥有的应用程序域的数量,您可以编写一个简单的应用程序,以恒定的速率吐出应用程序域,并查看在崩溃之前可以走多远。虽然不是精确的值,但它可以给你一个很好的近似值。

好的,听起来我想做的并不是一个疯狂的想法。我担心这就像是创造了一百万个线程,而10个线程就可以做到这一点。Thanks@Arkoh,不,当你想确保对不同的代码部分进行适当的沙箱处理时,这不是一个疯狂的想法。我担心这就像是创造了一百万个线程,而10个线程就可以做到这一点。Thanks@Arkoh,不,当您希望确保对不同代码部分进行适当的沙箱处理时,这不是一个疯狂的想法。