2012-02-26 92 views
0

我刚刚开始学习C#, 但我正面临着一种情况。在循环中读取XML文件

可以说,我有这个XML文件,它由1Hz刷新率的应用程序生成。 所以我需要C#来连续解析这个文件,直到点击一个按钮来停止这个动作。

这是我的权利,我从几个地方拿起

XmlDocument xml = new XmlDocument(); 
xml.Load("data.xml"); 
XmlNodeList xnList = xml.SelectNodes("/LiveData/Name"); 
int count = 1; 
foreach (XmlNode xn in xnList) 
{ 
string Name = xn["Name"].InnerText; 
string Value= xn["Value"].InnerText; 
Console.WriteLine("Values: {0} {1}", Name, Value); 
count = count + 1; 
} 

所以这样做一次,但现在,我想要做的是一个代码,可以说,我有两个按钮命名为“启动和停止”,一旦启动,循环应该继续读取文件,因为文件会在1秒内更新,然后当我单击“停止”按钮时,整个过程应该停止。

此外,我需要将这个值存储在数据库中,所以你认为每秒钟在MySql中插入这个值会是一个不好的选择吗?

请帮

+1

也许你可以通过使用'FileSystemWatcher'来避免连续读取该文件(http://msdn.microsoft.com/fr-fr/library/system.io.filesystemwatcher%28v=vs.100%29.aspx) ? – remio 2012-02-26 13:56:10

回答

1

如果你确定要读取的文件每一秒,并且不使用FileSystemWatcher作为remio建议,你应该使用一个计时器。在.Net中有几个定时器可用。你应该选择哪一种取决于你有什么样的应用程序(Winforms或WPF)。

每秒插入值到数据库应该不成问题。但是,你应该准备好处理这些数据量,如果你持续这么做了几个月,它会变成千兆字节。

+0

谢谢,我在想Backgroundworker类.. – 2012-02-27 01:04:17