我在C#中构建C#应用程序,真的很新。我想要做的是;使应用程序定期读取文本文件的内容(仅限一个或两个字)。文本文件的内容将由其他意思处理,所以没有问题。我在System.Windows.Forms.Label()的文本上显示内容。现在,它适用于Click或HandleCreated事件。但我希望它能在每2分钟内自动读取和显示内容。定期在C#应用程序中阅读文本文件的内容
我看着this和this,但不确定如何在我的情况下实现它。任何人都可以帮忙谢谢!
我在C#中构建C#应用程序,真的很新。我想要做的是;使应用程序定期读取文本文件的内容(仅限一个或两个字)。文本文件的内容将由其他意思处理,所以没有问题。我在System.Windows.Forms.Label()的文本上显示内容。现在,它适用于Click或HandleCreated事件。但我希望它能在每2分钟内自动读取和显示内容。定期在C#应用程序中阅读文本文件的内容
我看着this和this,但不确定如何在我的情况下实现它。任何人都可以帮忙谢谢!
创建一个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
中。
这确实有帮助。非常感谢 ! – 2010-08-01 04:35:53
在另一个回答中提到的计时器事件中,我希望您每次都需要阅读文件,即使其他进程当前正在锁定该文件。
但是,如果您没有采取预防措施,您将在文件正在使用时收到异常。当然,你可以捕捉到这个异常,但是你需要等待几秒钟后再尝试。如果文件仍然被锁定,您可能需要实现一些超时机制。
如果这不是你想要的,支持的(可能)读取另一种方法锁定的文件是使用与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
}
这将会很有用。谢谢!将尝试实施它。 – 2010-08-01 04:50:32
定时器或玩线程,创建一个独立的,并使用循环作为定时器,如果它达到120>打印和重置。 – Survaf93 2014-05-26 12:29:18