转载:异常Cannot perform this operation while dispatcher processing is suspended的处理

http://hexword.wordpress.com/2009/12/10/how-to-handle-cannot-perform-this-operation-while-dispatcher-processing-is-suspended-errors-in-wpf/

上面的文章指出了一种做法,但是如果WPF程序中充满了这样的代码,你就应该反思自己写的到底是不是WPF程序,绑定去哪里了。需要BeginInvoke做的事情是不是可以通过ViewModel里某个属性在后台去完成这个意图的表达。如果你希望ViewModel更稳定,更脱离易变的UI表现的实现。那么可以把ViewModel类的子属性包装成一些类似Setting或者特殊UIConfiguration之类的实现了INotifyPropertyChanged接口的类,只要将来容易分离就好。ViewModel毕竟不是BusinessObject,有些特定的UI实现需要的属性也是应该的。