我正在做一个项目,我在运行时加载了几个程序集,对于每个程序集,我使用反射来查找某些特定的类,实例化它们并调用它们的方法。所有这一切都运行正常,但对于某些调用,进程遇到堆栈溢出,终止了我的整个程序。我无法控制我正在加载的程序集的源代码,因此我无法更改正在执行的代码。
我试图解决这个问题:
我指定一个线程来调用方法并试图用 在timeintervall之后中止线程(我知道这很糟糕 练习,但我不能改变代码终止友好)。这个 但是不起作用,我认为线程是繁忙的“stackoverflowing” 处理中止呼叫。
我已经尝试减少线程可以访问的实际内存,这甚至都不是解决方案,因为你无法捕获stackoverflow-exception所以我的程序无论如何终止(只是更快)
问题:
提前致谢!
答案 0 :(得分:6)
“不透明代码”的建议过程是实际分叉一个新进程并启动它。这样你就可以获得两个好处: