我在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