如果我用ILGenerator编写DynamicMethod并且我输出的代码是线程安全的,那么生成的委托是线程安全的吗?

我担心的是第一次运行该方法时会编译 IL 。如果确实如果某个其他线程在编译时尝试运行该委托会发生什么呢?

有帮助吗?

解决方案

与标准代表没有任何区别。它们在某处以 MSIL JIT 在需要时编译它们。

一旦你以委托形式获得它,它就是你可以调用的代码体。这就是你真正需要知道的。您正在运行的.NET(Rotor,Mono,Microsoft one)的实现应该可以保护您免受任何关于此的考虑,否则它是实现中的错误。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top