2010-08-01 29 views
1

我在C#中構建C#應用程序,真的很新。我想要做的是;使應用程序定期讀取文本文件的內容(僅限一個或兩個字)。文本文件的內容將由其他意思處理,所以沒有問題。我在System.Windows.Forms.Label()的文本上顯示內容。現在,它適用於Click或HandleCreated事件。但我希望它能在每2分鐘內自動讀取和顯示內容。定期在C#應用程序中閱讀文本文件的內容

我看着thisthis,但不確定如何在我的情況下實現它。任何人都可以幫忙謝謝!

+0

定時器或玩線程,創建一個獨立的,並使用循環作爲定時器,如果它達到120>打印和重置。 – Survaf93 2014-05-26 12:29:18

回答

3

創建一個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中。

+0

這確實有幫助。非常感謝 ! – 2010-08-01 04:35:53

1

在另一個回答中提到的計時器事件中,我希望您每次都需要閱讀文件,即使其他進程當前正在鎖定該文件。

但是,如果您沒有采取預防措施,您將在文件正在使用時收到異常。當然,你可以捕捉到這個異常,但是你需要等待幾秒鐘後再嘗試。如果文件仍然被鎖定,您可能需要實現一些超時機制。

如果這不是你想要的,支持的(可能)讀取另一種方法鎖定的文件是使用與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 
     } 
+0

這將會很有用。謝謝!將嘗試實施它。 – 2010-08-01 04:50:32