【发布时间】:2015-08-12 09:13:23
【问题描述】:
我必须读取位于网站上的 XML 文件(目前仍然是本地的)。我在 windows 窗体应用程序上使用 C#,我使用以下代码:
try
{
DataSet dsMain = new DataSet();
dsMain.ReadXml(txtUrl.Text);
}
catch (Exception exx)
{
MessageBox.Show(exx.Message);
}
这些代码运行良好,但问题是 dsMain.ReadXml() 方法在第一次连接到网站时速度很慢。为了证明这一点,我用秒表包围它,如下所示:
try
{
Stopwatch st = new Stopwatch();
st.Start();
DataSet dsMain = new DataSet();
dsMain.ReadXml(txtUrl.Text);
st.Stop();
MessageBox.Show(Math.Round(st.Elapsed.TotalSeconds, 2).ToString(), "XML reading cost");
}
catch (Exception exx)
{
MessageBox.Show(exx.Message);
}
消息框显示第一次加载大约 2-3 秒,在应用程序期间每次读取大约 0-0.01 秒。如果我关闭应用程序并再次运行它,则会再次出现此问题。仅供参考,XML 文件很小(不到 10 KB)。
所以问题是,为什么 DataSet.ReadXml() 方法在第一次阅读时很慢,但在每次阅读时都很快?如何加快这种方法?我应该添加任何代码改进吗?
【问题讨论】:
标签: c# xml winforms performance