如果任何人都可以为这个提供一些帮助,我会非常感激!System.ExecutionEngineException PropertyChanged
我们使用:Silverlight 3中/ MVVM /黑光DragDock控制/ ComponentOne的Silverlight控件
我有一个Silverlight应用程序,在很大程度上依赖于MVVM模式。直到最近,该应用程序似乎一直运行良好。我已经开始注意到半随机(半随机=足够长的时间〜2 - 5分钟)我可以重现来自PropertyChanged事件引发的System.ExecutionEngineException。通知被提出的属性名称并不总是相同的属性名称(属性更改事件的触发发生在基本ViewModel类中)。
的代码基本上是这样的:
如果(的PropertyChanged!= NULL)Application.Current.RootVisual.Dispatcher.BeginInvoke(()=>的PropertyChanged(这一点,新PropertyChangedEventArgs(propertyName的)));
该代码适用于应用程序中的所有其他应用程序。基本上所有抛出物业的事物都会改变这一点。我不确定为什么突然失败。请按我的方式思考一下。
我一直在windbg膝盖深处试图掌握发生了什么,并且仍然很少。我很乐意提供转储或任何其他可能有用的信息。显然,从这个特殊的错误给出的信息非常少......
谢谢你的时间提前,大卫正义
谢谢大家的答案。我认为我们将搜索范围缩小到了第三方树控件中的一个问题,该问题在基础集合排序之后抛出树中选定项目的跟踪问题时抛出了内部异常库。错误的奇妙之处在于它以两种不同的方式表现出来。其一,它在选中的项目没有改变时改变的属性上发生爆炸,但是树的另一个子项被改变,然后一个可观察的集合改变事件被触发。第二个是当选定的项目发生更改时,索引超出范围例外。 – Justice 2010-03-09 13:33:40