所有获取数据的调用(LoadAsync()LoadNextPartialSetAsync())都在工作线程上完成.但是,’LoadCompleted’回调以及反序列化和对象实现都是在UI线程中完成的.
我们反编译了DataServiceCollection所在的System.Data.Services.ClIEnt.DLL,并且看到确实所有处理OData响应的代码都被分派到UI线程.
是否有任何方法可以在工作线程上调用反序列化?
谢谢
亚龙
似乎OData集合故意移动处理UI线程.我猜这是完成的,因为旧对象可能具有UI绑定的属性.加载其他数据时,这些属性可能会更改.
使用查询本身,我能够在工作线程上获得响应.但是,这样做意味着如果UI绑定到任何属性,必须从OData上下文中分离对象(或克隆它们).否则,当对象在工作线程上实现时,后续查询可能会导致属性更改事件.
总结以上是内存溢出为你收集整理的silverlight上的odata仅在UI线程上运行全部内容,希望文章能够帮你解决silverlight上的odata仅在UI线程上运行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)