Ale*_*tof 11 .net c# garbage-collection expression-trees
当我将表达式编译成可执行代码并获得委托时 - 当不再存在对该委托的引用时,代码是否会被垃圾收集?
有没有这方面的文件?因为我在MSDN中找不到任何有用的东西.
Jb *_*ain 12
是的,代码可以被垃圾收集.当您在T的表达式上调用Compile时,代码将被编译为DynamicMethod,并且这些代码可用于垃圾回收.
实际上它没有在MSDN上显示,但是您可以查看DLR中Expression <T> .Compile的实现,这是.net 4.0发布的:
http://dlr.codeplex.com/SourceControl/changeset/view/54115#990638
尽管编译器的实现在.net 3.5中有所不同,但仍然使用DynamicMethods(来源:我自己,我在Mono中实现了System.Linq.Expressions).
编译表达式树不可收集的情况是使用Expression <T> CompileToMethod,并且从未使用RunAndCollect标志创建的AssemblyBuilder传递MethodBuilder.
| 归档时间: |
|
| 查看次数: |
789 次 |
| 最近记录: |