我使用DataGrid来显示xml文件。 Grid的DataSource是一个DataSet。(使用模式)
Assembly assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("XML_Reader.Resources.schema.xsd");
XmlSchemaSet schemas = new XmlSchemaSet();
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, XmlReader.Create(stream));
using (XmlReader reader = XmlReader.Create(xmlFile, settings))
{
newDataSet.ReadXml(reader);
}
dataGrid.DataSource = newDataSet;
但是在读取新的xml文件时,我需要清除DataSet。(newDataSet.Clear();
)
因为我读了'大'(40 Mb)xml文件,清除DataSet是非常慢。
如何加快清除速度?
读取文件也很慢!
上一篇:Intel i7 950,8 Gb,Win7 64位。
答案 0 :(得分:1)
为什么不能只创建新数据集并使用它来清除旧数据集?旧的将由.NET收集垃圾。
答案 1 :(得分:0)
我建议您为每个文件使用新的DataSet
对象,并避免完全使用DataSet.Clear()
。只需将垃圾收集器清除旧数据集即可。
答案 2 :(得分:-1)
让我回答我自己的问题; - ))
类型化DataSet只是一个可以像任何其他类一样实例化的类。
工具生成的任何东西都没有魔力,这些工具只是生成类,你可以像使用其他类一样使用这些类。
请NewDataSet d1 = new NewDataSet();
在那里放置正确的类名而不是“NewDataSet”。