我正在尝试从非UI线程进行RIA服务调用
我通过打开新线程和后台工作程序进行了调用,但是对于这两种情况,回调都在UI线程上运行
是否可以在调用者线程上执行回调,而不是UI?
感谢
答案 0 :(得分:5)
<强> TL;博士强>
WCF RIA是为了在UI线程上工作而构建的
WCF RIA主要用于UI线程。这显然有很多优点和缺点;在你的情况下大多是利弊我无法找到这个设计的权威文档,但是,通过肯定UI线程来回答关于该主题的大多数问题。
域上下文加载和SubmitChanges异步执行。他们从线程池中获取一个线程,对服务器进行必要的调用,当这些调用完成后,工作会自动编组回UI线程以修改实体集合,然后更新UI(可能通过INotificationChanged)。 p>
如果您使用WCF获取自己的数据,则可以在您喜欢的任何线程上执行此操作。调用完成后,您必须编写(或借用)代码以更新UI线程上的UI以避免cross thread exceptions。
IMO,WCF RIA的主要优点是提供简单问题的简单解决方案:缺点是难以或不可能出现难题: