gpt4 book ai didi

c# - 封闭的 XML。 Workbook.Save() 时内存泄漏

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:47 25 4
gpt4 key购买 nike

我需要从 dataTable 添加新的工作表。对于此任务,我使用 ClosedXML:

workbook.Worksheets.Add(dataTable);
workbook.Save();
workbook = new XLWorkbook(filePath); //reload file to avoid exception at next saving

我的进程使用了​​ 128 Mb 的内存,但在 Workbook.Save() 之后,这个数字上升到 382 Mb。添加下一个工作表后,内存使用量从 464 Mb 上升到 619 Mb。但此时的实际文件为 1.6 Mb。

这可能是什么原因?

最佳答案

XLWorkbook 实现了 IDisposable,您应该调用它来释放它持有的任何资源。如果你不这样做——它们只会在实例被垃圾回收时被释放(假设 XLWorkbook 实现了正确的终结器),这将在未来的某个时间发生。你应该这样做:

workbook.Save();
workbook.Dispose(); // < important
workbook = new XLWorkbook(filePath);

当然更好的方法是将 workbook 包装到 using 语句中,或者至少使用 tryfinally 来确保异常释放,但这与问题没有直接关系。

关于c# - 封闭的 XML。 Workbook.Save() 时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43180623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com