在我正在開發的VSTO加載項中,我需要執行具有特定延遲的方法。棘手的部分是該方法可能需要0.1秒到1秒的時間才能執行。我目前使用System.Timers.Timer
這樣的:C# - 重複使用計時器的方法調用
private Timer tmrRecalc = new Timer();
// tmrRecalc.Interval = 500 milliseconds
private void tmrRecalc_Elapsed(object sender, System.Timers.ElapsedEventArgs e){
// stop the timer, do the task
tmrRecalc.Stop();
Calc.recalcAll();
// restart the timer to repeat after 500 ms
tmrRecalc.Start();
}
基本上開始其中,提出了在這之後停止執行任意長度的任務1對過去的事件。但UI線程似乎在每個任務之間掛起3-5秒。
定時器是否有'預熱'時間開始?這就是爲什麼它第一次(也是最後一次)耗時如此之久?
我使用哪種類型的計時器?
'Calc.recalcAll()'函數是否與任何UI控件交互? – dan 2010-03-24 00:26:30
是的,它確實需要。 – 2010-03-28 02:48:35