有人可以告诉我在UI线程和其他工作人员之间的Silverlight处理过程如何处理"线程。
我有一个场景,我必须通过viewmodel更新视图中的数百个复杂UI对象。每个项目都有自己的viewmodel支持。
如果每个视图模型都有一个属性,例如名为IsSelected的属性,它通过行为更改了背景颜色,那么我应该如何更改最小的UI线程阻塞?
如果我更新了我的(几百个)视图模型,它会阻止UI线程大约4秒钟。如何确定进行阻止的内容?有更有效的更新方法吗?
由于
答案 0 :(得分:0)
肯定比一次性更有效。
非Silverlight特定的解决方案是使用DispatcherTimer延迟调用将这些更新隔开几毫秒,因此线程有一些“喘息空间”来继续执行路径。
但是你也应该考虑一下你的体系结构,如果你正在处理数百个虚拟机,那么按照重要性为你的观众按顺序使用延迟加载和更新你的屏幕可能是值得的。
有关更多说明,请参阅此答案:https://stackoverflow.com/a/1710868/21217