解决release模式下的System.Reflection.TargetInvocationException问题

       昨天真是郁闷极了,做了半年的多的项目,应客户的要求加入了新的处理算法,然后调试让系统运行,在debug的模式下一切正常运行,然而后来想做release版本时却出现了System.Reflection.TargetInvocationException,一直在想以前做的软件版本都没有问题,现在仅是加入了一些新的算法幷在控制程序里添加了新功能,却出现了这个郁闷的bug,在客户的工作环境里感到囧死了!

      没办法静下心,只有不断地在release模式下打印一些调试信息,不断地添加注释/*...*/语句来缩小错误范围,后面终于发现了原来在界面程序里利用BeginInvoke参数中的delegate函数调用算法处理类的数组成员变量,自己开始是利用指针的方式引用了该成员变量的值方式如下:

      int *pRunState = this->ctrl->pRunState;其后delegate的函数中多次调用了pRunState变量;

      后来修改为如下的方式:

      int pRunState[3];

      for (int  i= 0; i < 3; i++)

      pRunState[i]= this->ctrl->pRunState[i]; 其余代码正常,余下的程序并没有变化!

      Oh My God!What's a big suprise !一切正常了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值