Silverlight中对WCF RIA 的异步调用的同步处理解决办法
来源:互联网 发布:摇一摇手表淘宝 编辑:程序博客网 时间:2024/04/29 23:48
由于silverlight在调用RIA时采用的异步调用模式,即向服务器端发出了调用请求后继续执行下面的操作,而无视服务器端返回的结果。为了能够让返回结果影响下面的操作需要进行同步处理。示例
private void Button_Click(object sender, RoutedEventArgs e) { InvokeOperation op = service.Login(this.txUserCode.Text, this.txPassword.Password, LoginUser, null); op.Completed+=new EventHandler(op_Completed); } private void LoginUser(InvokeOperation op) { if(op.HasError) { MessageBox.Show(op.Error.Message); } else { curUser = op.Value as SYS_USER; } } void op_Completed(object sender, EventArgs e) { if (curUser == null || curUser.USERID == null) { MessageBox.Show("用户密码错误!"); } }
如上代码
InvokeOperation op = service.Login(this.txUserCode.Text, this.txPassword.Password, LoginUser, null);
实际是执行了WCF中的一个方法,并在执行后使用LoginUser这个回调函数来处理数据,添加了op_Completed事件确保服务器端方法执行完毕后再执行新的操作。
要在服务器端定义异步方法需要使用[Invoke]标签。例如
[Invoke] public SYS_USER Login(string userName, string password) { //操作 }
- Silverlight中对WCF RIA 的异步调用的同步处理解决办法
- 异步与同步----Silverlight+WFC RIA的苦恼
- Silverlight中同步调用WebClient的解决办法,是同步!
- 更强悍的Silverlight: WCF RIA Services
- 将RIA Services中的异步调用强制为同步的
- 简单的Silverlight+MVVM+WCF Ria Service 对数据的增删改查DEMO
- SilverLight使用WCF RIA SERVICE实现对数据库的操作 (添加,删除,更新)
- Silverlight在调用wcf时传输数据过大的解决办法
- wcf ria forms验证的处理方式
- Silverlight 调用自托管的wcf 报跨域异常的处理
- Silverlight中服务通信方式的选择(WCF、Data Service、Ria Service)
- Silverlight中通过Javascript的XmlHttp调用服务器端内容的同步与异步问题
- 对Silverlight同步与异步编程之我的理解
- Silverlight中利用EF处理多对多关系的增删改查的解决办法
- silverlight中利用RIA进行oracle存储过程的调用返会结果集
- Silverlight动态跨域调用WCF Ria Service
- 关于java中同步异步的处理
- WCF异步调用中客户端关闭带来的性能问题
- [置顶]深入浅出---unix多进程编程之wait()和waitpid()函数
- JavaScript window.setTimeout() 的详细用法
- QTester Web自动化测试利器
- Asp.net错误“System.Web.HttpException: 超过了最大请求长度”解决办法
- 在 SQL Server 2008 中新建用户登录并指定该用户的数据库
- Silverlight中对WCF RIA 的异步调用的同步处理解决办法
- 确保0为值类型的有效状态
- 设计模式索引
- 设计模式之Dynamic Proxy-动态代理
- 设计模式之Factory Method(工场方法)
- 设计模式之Proxy–静态代理(代理模式)
- 设计模式之使用Enum来实现strategy(策略模式系列2)
- 设计模式之Strategy(策略模式系列1)
- LRU缓存介绍与实现 (Java)