如果我用ILGenerator编写一个DynamicMethod,并且我输出的代码是线程安全的,那么产生的委托会是线程安全的吗?
我担心的是IL会在方法第一次运行时编译。如果这是真的,那么当其他线程试图在代理编译时运行它时会发生什么呢?
发布于 2009-10-22 14:48:00
它与标准委托没有任何区别。它们都以MSIL的形式出现在某个地方,JIT会在需要的时候编译它们。
一旦你有了委托形式,它就是你可以调用的代码体。这就是你真正需要知道的。你正在运行的.NET的实现(Rotor,Mono,Microsoft one)应该屏蔽你对此的任何考虑,否则它是实现中的一个错误。
https://stackoverflow.com/questions/1605391
复制相似问题