.net 多个mono_jit_init/mono_jit_清理问题
我正在开发某个应用程序,其中要求我多次调用mono_jit_init。当我第一次运行应用程序执行mono_jit_init时,mono_jit_cleanup一切正常,当我再次尝试执行mono_jit_init时出现问题(这一次是为了加载不同的运行时[这是我的要求:(])。在mono网站上,有人提到我们应该在一个过程中初始化mono运行时一次。我已经搜索了这个问题,但没有找到任何有效的解决方案。因此,我想知道有没有什么办法可以解决这个问题?如果可能的话,有人可以详细说明为什么不支持mono_jit_init多次?是否相关对于某些GC清理问题?查看Mono源代码,崩溃似乎与Mono运行时的初始化方式有关(依赖于零变量) 因此,您必须在运行时生命周期中调用一次.net 多个mono_jit_init/mono_jit_清理问题,.net,mono,garbage-collection,jit,.net,Mono,Garbage Collection,Jit,我正在开发某个应用程序,其中要求我多次调用mono_jit_init。当我第一次运行应用程序执行mono_jit_init时,mono_jit_cleanup一切正常,当我再次尝试执行mono_jit_init时出现问题(这一次是为了加载不同的运行时[这是我的要求:(])。在mono网站上,有人提到我们应该在一个过程中初始化mono运行时一次。我已经搜索了这个问题,但没有找到任何有效的解决方案。因此,我想知道有没有什么办法可以解决这个问题?如果可能的话,有人可以详细说明为什么不支持mono_ji
mono\u jit\u init()
如果库是静态加载的,那么这意味着应用程序的生命周期,但是如果Mono运行时是通过dl_open()
动态加载的,那么只有一个加载/卸载周期。除了缓存Mono函数指针的额外工作外,这种解决方法对于运行并发Mono任务可能并不实用
另一种继续(并且支持并发运行)的方法是缓存运行时上下文以供进一步使用,而不是使用mono\u jit\u init()
重复创建它。您必须使用专用的mono域
来执行卸载程序集
等奇特的操作
总有一个解决方案。只是需要时间来找到一个最适合你需要的