“尝试读取或写入受保护的内存”错误处理
" 未处理 System.AccessViolationException
最近程序运行经常的出现这个问题,这种错误是时不时就出现的,无法跟踪。猜到可能是资源没有及时释放,网上搜索果然如此: 没有强制的释放方法,底层的com组件根据你进程调用组件的次数来控制对象的增加和释放(对象释放会延迟,com自身的问题)。一般是调用强制垃圾回收或ao自带的回收对象的方法,效果不明显。 解决方法是自己在程序里强制释放COM资源,调用Marshal.ReleaseComObject()方法将不再使用的对象释放掉。具体可参见释放COM资源篇: |