我已经创建了自己的WCF服务,并且我已经成功地通过我的Silverlight客户端与它交谈。尽管我在异步回调中遇到了一个有趣的问题。当调用我的回调,我不能可怕无效跨线程访问异步Silverlight WCF回调
这是我的回调函数是什么样子
private void GetTimeCallBack(object sender, Talk.ClientBase<IService>.ClientEventArgs e)
{
lblDisplay.Text = e.Object.ToString();
}
快速谷歌搜索给我看,我有更新任何UI控件代之以做到这一点。
private void GetTimeCallBack(object sender, Talk.ClientBase<IService>.ClientEventArgs e)
{
Dispatcher.BeginInvoke(() => lblDisplay.Text = e.Object.ToString());
}
现在一切正常,但我没想到我的回调是在不同的线程上运行。我是否总是必须使用Dispatcher类来修改我的类中的任何内容,还是仅限于UI元素?我完全不熟悉Dispatcher类,所以我期待更多地了解它。
很酷,谢谢。偶尔你会碰巧拥有更多关于这个话题的资源吗? – Matt