我尝试将我的记录导出到excel并在Windows 8操作系统中处理导出的元素。我可以在任务管理器中看到内存减少的细节。但是我在Windows 2008服务器操作系统中使用了相同的代码。处理导出的元素后没有内存差异。我可以使用以下代码清除垃圾收集器。
ExportedElement = null;
GC.SuppressFinalize(obj);
如果有人知道这个,你能否提供这些变化的原因?
答案 0 :(得分:0)
是的,不同的Windows平台和.NET框架之间的垃圾收集行为存在差异。
不,GC.SuppressFinalize()只是建议CLR在收集对象时不要调用对象的终结器。该方法既不强制进行垃圾收集,也不阻止收集特定对象(或者使用'清除垃圾收集器')。
有关详细信息,建议您阅读Microsoft文档: https://msdn.microsoft.com/en-us/library/ee787088(v=vs.110).aspx