如果"UI thread"和"DispatchTimer"都在更新 Silverlight 4.0 中的可观察集合列表,是否需要锁定


  1. 我有一个ObservableCollection列表,该列表绑定到ListView在UI中
  2. UI正在启动DispatchTimer以更新具有状态的列表(测试通过或不通过)
  3. 但是UI线程还有一个更新ObservableCollection列表,通过添加或删除该列表中的项ObservableCollection列表,如果用户选择添加或删除某些从列表中进行测试

到目前为止,它看起来不错。但有人能帮我理解DispatchTimer和UI线程是如何避免死锁的吗。根据我的理解,调度计时器也是一个内部线程。如果我错了,请原谅我。如果在observalecollection上可能发生死锁,那么我们可以通过在silverlight中使用lock()来防止死锁吗。

来自MSDN上DispatcherTimer页面的备注部分:

使用DispatcherTimer而不是System.Timers.Timer是DispatcherTimer在线程作为调度程序。。。

与Dispatcher相同的线程是UI线程,因此您是安全的。

最新更新