当前位置: 代码迷 >> C# >> c# 动态编译后内存释放有关问题
  详细解决方案

c# 动态编译后内存释放有关问题

热度:89   发布时间:2016-05-05 03:34:26.0
c# 动态编译后内存释放问题
有没有人用过c#里的 动态编译类 
CSharpCodeProvider 我现在发现连续进行动态编译的话 内存会一直增加 直到奔溃
有什么办法能让内存释放掉呢

demo:
comp = (new CSharpCodeProvider().CreateCompiler());
。。。
CompilerResults cr = comp.CompileAssemblyFromSource(cp, codeInit.ToString() + code.ToString());//就在执行了这句代码后内存就会增加

谢谢大家
------解决思路----------------------
引用:
Quote: 引用:

没有好办法,因为程序集只能加载不能卸载。应用程序域可以加载卸载。
所以如果你想卸载的话,就要用应用程序域去加载程序集,用完之后卸载应用程序域。

我明白你的意思了,相当于每次编译都是一次加载,那我减少对动态编译的调用就会好些了

就是用起来稍微麻烦点,需要跨应用程序域去操作对象和方法,不过本来也是反射,区别不太大。
  相关解决方案