我已经创建了自己的WCF服务,我已经成功地能够通过我的Silverlight客户端谈论它。 我跑进我的异步回调一个有趣的问题,虽然。 当调用我的回调,我不能更新与可怕的无效跨线程访问任何UI控件
下面是我的回调函数看起来像
private void GetTimeCallBack( object sender, Talk.ClientBase<IService>.ClientEventArgs e )
{
lblDisplay.Text = e.Object.ToString();
}
快速谷歌搜索给我看,我必须这样做来代替。
private void GetTimeCallBack( object sender, Talk.ClientBase<IService>.ClientEventArgs e )
{
Dispatcher.BeginInvoke( () => lblDisplay.Text = e.Object.ToString() );
}
现在,一切工作正常,但我没想到我的回调将在不同的线程运行。 我会永远使用Dispatcher类,以我的类中的任何修改或者这只是仅限于UI元素? 我已经不熟悉Dispatcher类在所有所以我希望了解更多。