今天研究silverlight异步调用方法,返回记录总数,更新分页控件,研究了很久,出现了跨线程访问的错误,才知道不能直接更新。
http://m.cnblogs.com/20267/1420156.html?full=1
Silverlight中 非UI线程更新UI 的几种方法:Delegate,Asyncoperation,BackgroundWorker
1. delegate
void DoShow(i){
this.dispatcher.BeginInvoke(
delegate {
txtCalc.Text = string.format(“result “{0}”,i);
});
}
this.dispatcher.BeginInvoke(
delegate {
txtCalc.Text = string.format(“result “{0}”,i);
});
}
2.Asyncoperation
void DoShow(i){
//这个可以写成成员变量,我这里只是为了好区分
System.ComponentModel.Asyncoperation asyncoper = System.ComponentModel.AsyncoperationManager.CreateOperation(null);
asyncoper.Post(result =>
{
txtCalc.Text = string.format(“result “{0}”,i);
},null);
}
//这个可以写成成员变量,我这里只是为了好区分
System.ComponentModel.Asyncoperation asyncoper = System.ComponentModel.AsyncoperationManager.CreateOperation(null);
asyncoper.Post(result =>
{
txtCalc.Text = string.format(“result “{0}”,i);
},null);
}
3.BackgroundWorker
参考
MSDN上的文章的
(http://msdn.microsoft.com/zh-cn/library/system.componentmodel.backgroundworker(VS.95).aspx) |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。