C# 数据未正确保存在内存流C中#
我正在使用HtmlAgilityPack并将html文档保存在MemoryStream中:C# 数据未正确保存在内存流C中#,c#,file-io,html-agility-pack,C#,File Io,Html Agility Pack,我正在使用HtmlAgilityPack并将html文档保存在MemoryStream中: MemoryStream ms = new MemoryStream(); HtmlDocument doc = new HtmlDocument(); doc.load(path); . . doc.Save(ms); 现在的问题是,有时文档已完全保存,有时文档的某些内容(从结尾)丢失,它没有与文档一起保存。有人能告
MemoryStream ms = new MemoryStream();
HtmlDocument doc = new HtmlDocument();
doc.load(path);
.
.
doc.Save(ms);
现在的问题是,有时文档已完全保存,有时文档的某些内容(从结尾)丢失,它没有与文档一起保存。有人能告诉我为什么会发生这种情况,我该如何解决 保存此文件后尝试添加
memoryStream.Seek(0, System.IO.SeekOrigin.Begin)
在处理流(或任何实现IDisPossible的东西)时,请确保高效地管理内存。Net垃圾收集可以在任何时候启动,并且结果可能是不可预测的
这有时与将变量包装在using()语句中一样简单:
using(var ms = new MemoryStream()) {
var doc = new HtmlDocument();
doc.Load(path);
doc.Save(ms);
}
请发布一个简短但完整的程序来演示问题。GC可以随时启动;但是结果不会影响发布的代码。GC只收集不再使用的对象。“ms”最早要在调用save之后才会被收集——这不会造成任何像OP描述的问题。你是对的——我想我只是在抓救命稻草:)