作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用 Silverlight 上的 OData,使用 DataServiceCollection 获取数据。
所有获取数据的调用 (LoadAsync() LoadNextPartialSetAsync()) 都是在工作线程上完成的。但是,“LoadCompleted”回调以及反序列化和对象物化是在 UI 线程中完成的。
我们对 DataServiceCollection 所在的 System.Data.Services.Client.DLL 进行了反编译,发现确实所有处理 OData 响应的代码都被分派(dispatch)到了 UI 线程。
有没有办法让反序列化在工作线程上被调用?
谢谢
亚龙
最佳答案
好...
似乎 OData 集合故意移动处理 UI 线程。我猜这是因为旧对象可能具有 UI 绑定(bind)的属性。加载其他数据时,这些属性可能会发生变化。
使用查询本身,我能够在工作线程上获得响应。但是,这样做意味着如果 UI 绑定(bind)到任何属性,则必须从 OData 上下文中分离对象(或克隆它们)。否则,当对象在工作线程上实现时,后续查询可能会导致属性更改事件。
关于silverlight - silverlight 上的 odata 仅在 UI 线程上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228073/
我是一名优秀的程序员,十分优秀!