您的位置:首页 > 编程语言 > C语言/C++

关于 c#调用c++ 出现异常System.StackOverflowException 的问题

2015-08-17 00:00 316 查看
摘要: 首先我介绍下环境吧,c#端是一个web应用,过IIS的,调用的动态库中有Clucene,中科院的分词

这个问题很奇葩也很怪异,我在本机中使用Console和但网页的测试程序都是通过了的,但是经过同事测试下,一直抛出异常 StackOverflowException,这个异常的解释是调用的动态库中可能存在无限循环,或者是函数嵌套太多。

这个问题调试了一天,也困扰了我一天,dll本身的函数逻辑是没有问题的,最后在c#中开启了一个线程且合理的分配了堆的大小,函数通过了。这个问题也算是解决了一半吧,不知道哪位大神能来详细解释一番。

类似于下面的代码:

改之前

var r = your_class_name.function_name(var1, var2,...);


改之后:
Thread thread = new Thread(() =>
{
var r = your_class_name.function_name(var1, var2,...);
}, 合理的大小);
thread.Start();
thread.Join();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息