|
|
1
2
我会根据你的具体情况进行基准测试。 如果它被证明是昂贵的,只需预先创建一些,根据需要使用,并在后台重新创建新的,以确保你总是有足够的未使用的等待(有点像线程池,但每次都要重新创建以释放内存)。 |
|
|
2
1
据我所知,它只是比生成线程慢一点。
一直在做一些研究,试图找到一个真正的参考。到目前为止,这是我能想到的最好的:
大约2/3的时间里,创建AppDomain是“昂贵的”,但在某些情况下,你可能会对线程说同样的话——这实际上取决于特定线程在创建时做了什么。 再次强调:据我所知,AppDomain本质上是进程中的一个线程(或多个线程)——如果你愿意的话,它是一个逻辑分隔符——这样运行时就保证了某些额外的保护措施是有效的,可以防止单独的AppDomain相互干扰。要在现有进程(应用程序)中创建新的AppDomain,框架必须完成与创建新线程相关的所有工作,以及在应用程序的其余部分中设置它的一些额外开销(这也可能涉及将一个或多个程序集加载到内存中)。最后,AppDomain位于线程和进程之间。 |
|
|
chrisih · 反射发出无效程序异常 8 年前 |
|
|
MAGx2 · 在IlGenerator中调用其他方法 9 年前 |
|
|
Stuart · 以编程方式创建类似的类,包括方法 10 年前 |
|
|
SCB · 调用动态方法时“操作可能会破坏运行时的稳定” 12 年前 |
|
John Alexiou · 发出MSIL以发出MSIL运行到JIT限制 12 年前 |
|
|
mll5 · 使用stringbuilder编组发出非托管调用 12 年前 |
|
|
Jim · 如何动态组合两个接口以传递给RealProxy 12 年前 |
|
|
Impworks · 从反射生成的程序集调用lambda 13 年前 |