在C#应用程序中定期读取文本文件的内容

我正在玩C#应用程序,真的是新的C#。 我想要做的是 使应用程序定期读取文本文件的内容(只有一个或两个字)。 文本文件的内容将由其他意思处理,所以没有问题。 我在System.Windows.Forms.Label()的文本上显示内容。 现在,它适用于Click或HandleCreated事件。 但是我希望它能够在每个2分钟内自动读取和显示内容。

我看着这个 ,但不知道如何实施它在我的情况。 任何人都可以帮忙 谢谢!

创建一个System.Forms.Timer ,将间隔设置为2分钟,并处理计时器滴答事件。

// Declare at form class scope System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); // ... myTimer.Tick += new EventHandler(TimerEventProcessor); // Sets the timer interval to 120 seconds (2 minutes). myTimer.Interval = 120000; myTimer.Start(); 

将调用放到方法来读取文件并将其显示在TimerEventProcessor

在另一个回答中提到的计时器事件中,我希望您每次都要读取文件,即使其他进程正在锁定文件。

但是,如果您不采取预防措施,只要文件正在使用,就会收到异常。 当然,你可以捕捉到这个异常,但是你需要等待几秒钟再试一次。 如果文件仍然被锁定,你可能需要实现一些超时机制。

如果这不是您想要的,另一种支持读取(可能)已锁定文件的方法是使用使用FileShare.ReadWrite参数创建的FileStream对象:

  // Inside your timer event. using (System.IO.FileStream fs = new System.IO.FileStream("yourfile.log", System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite)) { // use fs to read from file as required }