在我的應用程序中,我有一個計時器,它會在幾分鐘內檢查服務器的配置更新。強制定時器的刻度(包括異步行爲)
配置檢索是一個非常耗時的過程,所以我想強制計時器的「滴答」事件,但我不能只調用timer_tick(bla,bla,bla),因爲它會同步執行。
是否有一個簡單的方法來強制計時器「滴答」(不創建新的線程)? 行爲應該「重置」定時器的剩餘時間(因此,如果最初定時器被設置爲2分鐘間隔並且1分鐘已經過去 - 在強制「打勾」之後 - 定時器將再次開始計數2分鐘)
在我的應用程序中,我有一個計時器,它會在幾分鐘內檢查服務器的配置更新。強制定時器的刻度(包括異步行爲)
配置檢索是一個非常耗時的過程,所以我想強制計時器的「滴答」事件,但我不能只調用timer_tick(bla,bla,bla),因爲它會同步執行。
是否有一個簡單的方法來強制計時器「滴答」(不創建新的線程)? 行爲應該「重置」定時器的剩餘時間(因此,如果最初定時器被設置爲2分鐘間隔並且1分鐘已經過去 - 在強制「打勾」之後 - 定時器將再次開始計數2分鐘)
更改它的超時值。
在您的消費過程中,您的第一步就是禁用定時器,最後一步是重新啓用定時器。
也許你只是把這個解散,只是之前啓用,並要求你的長期運行的進程這樣的後:
timer.Enabled = false;
LongRunningSyncProcess();
timer.Enabled = true;
LongRunningSyncProcess()將同步運行 - 無論如何,不想要 – Nissim 2010-05-06 08:17:14
感謝豬頭...我創建了一個簡單的應用程序來檢查影響改變而超時計時器正在運行,並且它工作得很好。 我所做的是將計時器的間隔更改爲1(最小可能),Thread.Sleep(1),並將間隔重置爲其原始值......像魅力一樣工作 – Nissim 2010-05-06 08:19:25