我有調用Filewatcher功能的程序,這樣飼料投入Console.ReadKey
Main()
{
watch();
console.Readkey();
}
我在年底console.readkey,因爲我不想顯示「按任意控制檯密鑰繼續「,而文件正在觀看更改。現在,如果檢測到更改,則會觸發另一個函數,這會執行其操作,並最終再次調用main,然後再次在console.readkey處停止。
在這一點上,我遇到喜歡的節目一些奇怪的問題,需要兩個關鍵投入繼續。我猜這是因爲之前的console.readkey仍然在等待輸入,所以第一個輸入到那裏,然後第二個輸入進入第二個console.readkey。
所以,我的問題是,當filewatcher第一次被觸發時,我可以通過代碼向console.readkey提供一些東西,等待用戶輸入嗎?
但在這種情況下,除非將exitProgram設置爲true,否則watcher函數將被無限調用。我只想調用觀察器函數一次,讓它在後臺運行,觀察變化。如果發現更改,我會停止觀察者,對文件進行一些更改並希望重新啓動觀察者。 – xbonez 2010-09-17 20:30:04
PS - 當觀察者函數檢測到一個改變時,它調用我寫的OnChange方法。我無法從該方法本身調用觀察器函數,因爲需要進行必要的更改以重新訪問Main – xbonez 2010-09-17 20:30:57
@xbonez:我現在明白了 - 循環仍然是正確的方法。我重寫了我的答案,以解釋如何使用循環+ AutoResetEvent完成此項工作。 – 2010-09-17 20:47:13