silverlight跨线程访问无效

在silverlight前台使用定时器定时刷新时会报跨线程访问无效的错误,如下代码:

using System.Threading;

 Timer timer = new Timer(new TimerCallback(timer_tick), null, 0, 10000);

private void timer_tick(object state)
        {
            //获取异步调用wcf方法获取数据源
            _model.OIU_SMS_Receive(newestID);
        }


//以下为事件处理函数中绑定数据源的操作,简写在这,也就是这一句报错
//lbMsg.DataContext = e.Result;

为什么会报这个错误暂时没有研究,但将代码lbMsg.DataContext=e.Result;替换为以下代码可以解决问题:

Deployment.Current.Dispatcher.BeginInvoke(delegate { lbMsg.DataContext = e.Result; });

posted @ 2011-04-23 16:35  LARSON _  Views(968)  Comments(2Edit  收藏  举报