在 Silverlight 应用程序中,我有一段代码必须每 500 毫秒运行一次。我计划使用 DispatcherTimer 来实现这一点(参见下面的代码)。
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = new TimeSpan(0, 0, 0, 0, 500); // 500 Milliseconds
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
但是,可能会发生代码块的执行时间超过 500 毫秒(代码块会执行一些 Web 服务调用)。如何确保如果当前正在进行呼叫, DispatcherTimer 不会触发另一个事件?有哪些选择,最好的方法是什么?使用锁?