非UI线程中的Silverlight和回调

时间:2009-11-12 12:19:36

标签: c# .net silverlight multithreading

在异步任务(例如事件侦听或网络请求)之后,Silverlight是否会在非UI线程中进行回调?

假设我没有创建自己的线程。

谢谢, 锐

2 个答案:

答案 0 :(得分:6)

是的异步任务通常(如果不是总是)在与UI线程不同的线程上进行回调。因此,在具有UI(甚至不具有UI)的所有内容上都存在Dispatcher属性。由您来确保在UI线程上调用需要在UI上运行的代码。

不幸的是,关于什么可以从非UI线程修改和不可修改的文档很少,因为这可能会从一个版本更改为下一个版本。

答案 1 :(得分:2)

如果你遵循MVVM模式,并在viewmodel中进行WCF异步调用(因为所有调用都是Silverlight中的aync),即使你将当前页面保留在导航应用程序中,回调也会触发,这可能是如果您的回调在成功时重定向到另一个页面会很烦人!