use*_*089 4 c# stack-overflow multithreading assemblies
我正在做一个项目,我在运行时加载几个程序集,对于每个程序集,我使用反射来查找一些特定的类,实例化它们并调用它们的方法.所有这一切都运行正常,但对于某些调用,进程遇到堆栈溢出,终止了我的整个程序.我没有任何控制我正在加载的程序集的源代码,所以我无法更改我正在执行的代码.
我试图解决这个问题:
我指定一个线程来调用方法,并尝试
在timeintervall之后中止线程(我知道这是不好的做法,但我不能更改代码以终止友好).然而,这不起作用,我认为线程是忙于"stackoverflowing"来处理中止调用.
我已经尝试减少线程可以访问的实际内存,这甚至不是一个解决方案,因为你无法捕获stackoverflow-exception所以我的程序无论如何终止(只是更快)
问题:
提前致谢!
"不透明代码"的建议过程是实际分叉一个新进程并启动它.这样你就可以获得两个好处:
| 归档时间: |
|
| 查看次数: |
128 次 |
| 最近记录: |